zoukankan      html  css  js  c++  java
  • 第十一周编程总结

     
    7-1 打印九九口诀表 (15 分)

    下面是一个完整的下三角九九口诀表:

    1*1=1   

    1*2=2   2*2=4   

    1*3=3   2*3=6   3*3=9   

    1*4=4   2*4=8   3*4=12  4*4=16  

    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  

    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  

    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  

    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  

    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

    本题要求对任意给定的一位正整数N,输出从1*1N*N的部分口诀表

    1).实验代码

    #include<stdio.h>

    int main()

    {

      int N,i,k,j;

      scanf("%d",&N);

      for(i=1;i<=N;i++){

        for(k=1;k<=i;k++){

        

          printf("%d*%d=%-4d",k,i,i*k);

          

        }

        printf(" ");

      }

      return 0;

    }

    2). 设计思路

    第一步:定义变量

    第二步:输入变量

    第三步:调用for语句,判断行列的变量

    第四步:打印乘法表

    3).本题调试过程碰到的问题及解决方法        

            问题:没有注意等号右边数字占数与对齐方向

           解决方法:将%d更改为%-d

           4).运行结果截图

      

          

    7-2 换硬币 (20 分)

    将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

    1)实验代码

    #include<stdio.h>

    int main()

    {

      int n,k,j,m,count=0,i;

      scanf("%d",&n);

      

      for(i=n/5;i>0;i--){

       for(j=n/2;j>0;j--){

       for(k=n;k>0;k--){

       if(i*5+j*2+k==n){

      

       printf("fen5:%d, fen2:%d, fen1:%d, total:%d ",i,j,k,i+j+k);

       count++;

      }

      }

      }

      }

     printf("count = %d",count);

        

      

      return 0;

    }

    2).设计思路

    第一步:定义变量

    第二步:输入变量

    第三步:调用for语句进行考虑5分、2分、1分的换法

    第四步:判断所换得金额是否与输入的原金额相同

    第五步:输出答案

    3) .本题调试过程碰到的问题及解决方法                          

              问题:换法考虑不全

              解决方法:进行多维思考

           4).运行结果截图

    7-3 找完数 (20 分)

    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数mn之间的所有完数。

    1).实验代码

    #include<stdio.h>

    int main()

    {

      int n,m,sum=0,j,i,num=0;

      scanf("%d %d",&m,&n);

      if(1<m<=n<=10000){

        

        for(i=m;i<=n;i++){

          

          sum=1;

          for(j=2;j<i;j++){

            

            if(i%j==0) sum+=j;

            

          }

          if(sum==i){

            

            printf("%d = 1",i);

            for(j=2;j<i;j++)

                if(i%j==0)

                   printf(" + %d",j);

                   printf(" ");

                num++;

            

          }

          

        }

        

        if(num==0) printf("None ");

      }

      return 0;

    }2).设计思路

    第一步:定义变量

    第二步:输入变量

    第三步:调用if语句,判断输入的的变量是否满足题目要求

    第四步:调用for语句寻找因子

    第五步:判断因子的和是否与原数相等

    第六步:输出答案

    3).本题调试过程碰到的问题及解决方法

    问题:没有考虑题目要求输入的值的范围

    解决方法:调用if语句判断输入的值是否满足题目要求

    4).运行结果截图

             

     

     

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/lmcmha/p/10016915.html
Copyright © 2011-2022 走看看