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