第十一周编程总结--助教

题目1 打印九九口诀表
(1)实验代码
#include<stdio.h>
int main ()
{
 int i, j, n;
 
 scanf("%d", &n);
 
 for(i = 1;i<=n;i++)
 {
  for(j = 1;j<=i;j++)
  {
   if(i *j>=10)
   printf("%d*%d=%d  ", j, i, i*j);
   else
   printf("%d*%d=%d   ", j, i, i*j);
  }
  printf("\n");
 }
 return 0;
 }
(2)设计思路
第一步:定义需要输入的变量为n,输入n的值
第二步:运用for循环,第一个for代表着需要的行数
第三步:第二个for输出计算式,而 if 语句的作用在于格式问题(大于十的时候数字会多一位)
第四步:打印表格
(3)本题调试过程碰到问题及解决办法
问题就是格式问题,其他没什么
(4)运行结果截图

题目2 换硬币
(1)实验代码
#include<stdio.h>
int main ()
{
 int n, fen5, fen2, fen1, total;
 int count = 0;
 
 scanf("%d", &n);
 
 for(fen5 = 19;fen5 >=1;fen5--)
 {
  for(fen2 = 49;fen2 >=1;fen2--)
  {
   for(fen1 = 99;fen1 >=1;fen1--)
   if(fen1+fen2*2+fen5*5==n)
   {
    total = fen5 + fen2 + fen1;
    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", fen5, fen2, fen1, total);
    count++;
   }
  }
 }
 printf("count = %d", count);
 
 return 0;
}
(2)设计思路
第一步:定义每个硬币需要的变量,输入所给的零钱数额
第二步:用三个for循环,每次递减一,再用一个if语句判断是否等于所给的数额
第三步:打印出每个硬币的数额,每循环一次count加一
第四步:输出换硬币的方法种数
(3)本题调试过程碰到问题及解决办法
第一个是5分硬币是从大往小的开始输出的,没注意,改正循环条件后正确
(4)运行结果截图

题目3 找完数
(1)实验代码
#include<stdio.h>
int main()
{
 int n,m,i,j,sum,num=0;
 
 scanf("%d %d",&m,&n);
 for(i=m;i<=n;i++){
  if(i==1) continue;
  
  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("\n");
   num++;
  }
 }
 if(num==0) printf("None\n");
 
 return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入m到n的范围
第三步:用for循环找完数,如果m为1需要跳过
第四步:输出式子
(3)本题调试过程碰到问题及解决办法
跟整除光棍类似,问题就是一开始没注意m=1时的情况
(4)运行结果截图

猜你喜欢

转载自www.cnblogs.com/zw431387/p/10014065.html