第七周编程总结
7-1 生成3的乘方表 (15 分)
输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方
1).实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int n,y,i;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
y=pow(3,i);
printf("pow(3,%d) = %d\n",i,y);
}
return 0;
}
2). 设计思路
第一步:定义变量
第二步:输入变量
第三步:调用for语句,调用库函数
第四步:计算
第五步:输出答案
3).本题调试过程碰到的问题及解决方法
问题:输出的格式错误
解决方法:按照输出样例重新输出
4).运行结果截图
7-2 求平方根序列前N项和 (15 分)
本题要求编写程序,计算平方根序列√1+√2+√3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。
1)实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int N,i;
double sum;
scanf("%d",&N);
sum=0;
for(i=1;i<=N;i++)
{
sum+=sqrt(i);
}
printf("sum = %.2f",sum);
return 0;
}
2).设计思路
第一步:定义变量
第二步:输入实数
第三步:调用for语句,调用库函数
第四步:计算每一项的平方根,累加求和
第五步:输出答案
3).本题调试过程碰到的问题及解决方法
问题:没有按照题目要求保留来两位小数
解决方法:输出时答案保留两位小数
4).运行结果截图
7-3 求幂之和 (15 分)
本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
1).实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int N,i,result;
scanf("%d",&N);
result=0;
for(i=1;i<=N;i++)
{
result+=pow(2,i);
}
printf("result = %d",result);
return 0;
}
2).设计思路
第一步:定义变量
第二步:调用for语句,调用库函数
第三步:累加求和
第四步:输出答案
3).本题调试过程碰到的问题及解决方法
问题:漏掉了取地址符号
解决方法:重新添加取地址符号
4).运行结果截图
7-4 求组合数 (15 分)
本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1).实验代码
#include<stdio.h>
double fact(int n);
int main(void)
{
int n,m,i;
double result;
scanf("%d %d",&m,&n);
result=1;
for(i=0;i<=n;i++){
result=fact(n)/(fact(m)*fact(n-m));
}
printf("result = %.0f",result);
return 0;
}
double fact (int n)
{
int i;
double product;
product=1;
for(i=1;i<=n;i++)
{
product=product*i;
}
return product;
}
2).设计思路
第一步:自定义函数声明,定义变量
第二步:输入变量
第三步:调用for语句
第四步:计算
第五步:定义求阶乘的函数
3).本题调试过程碰到的问题及解决方法
问题:未定义求阶乘的函数
解决方法:定义一个求阶乘的函数
4).运行结果截图
7-5 验证“哥德巴赫猜想” (20 分)
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和
1).实验代码
#include<stdio.h>
#include<math.h>
int isprime(int N);
int main()
{
int i,N;
scanf("%d",&N);
for(i=2;i<N;i++){
if(isprime(i)&&isprime(N-i))
{
printf("%d = %d + %d",N,i,N-i);
return 0;
}
}
return 0;
}
int isprime(int x)
{
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)
return 0;}
return 1;
}}
2).设计思路
第一步:自定义函数声明,定义变量
第二步:输入变量
第三步:调用for语句,if语句
第四步:判断素数
第五步:定义判断素数的函数
3).本题调试过程碰到的问题及解决方法
问题:辨别两个数为素数错误
解决方法:添加逻辑语言使条件正确