《c++程序设计》课程设计报告
班级: 数学四班 学号: 2018212777
报告人姓名: 彭英壮
实验地点: 教学楼414
完成起止日期: 2019/1/1-2019-1/4
1.
题意:水仙花数为一个三位数,它的各位数字的立方和等于其本身。输出所有在m和n范围内的水仙花数。
解题思路:因为要输入多组数据,所以把数据放到while语句中输入。三位数的各位数字需要用循环语句来求出,如果在区间内有多个数字满足的话,每个数字之间需要空格,但是要注意最后一个数字后面不需要空格。每输出一行数字之后还要换行
代码:
#include<stdio.h>
int main(){
int n,m,i,j,k,a,b,c,l,s[999];
while(scanf("%d %d",&m,&n)!=EOF)
{
if(m>n) {l=m;m=n;n=l;}
k=0;
for(i=m;i<=n;i++)
{
c=i%10;
b=i/100;
a=(i-b*100)/10;
if(a*a*a+b*b*b+c*c*c==i)
{k++;
s[k]=i;}
}
if(k==0) printf("no\n");
else{
for(j=1;j<=k;j++)
{
if(j==k) printf("%d",s[j]);
else printf("%d ",s[j]); }
printf("\n");
}
}
}
2.
题意:已知n个整数,求其中所有奇数的乘积。
解题思路:把数据的输入用while语句来控制,把这n个整数放到数组中来存储,用for语句判断这其中的每个数字能不能被2整出,不能的话就累乘。最后输出的时候要注意换行
代码:
#include<stdio.h>
int main()
{
int n,i,k,a[999];
while(scanf("%d",&n)!=EOF)
{
k=1;
for(i=1;i<=n;i++)
{ scanf("%d",&a[i]);
if(a[i]%2!=0) k*=a[i];
}
printf("%d\n",k);
}
}
3.
题意:对于表达式n^2+n+41,当n在某个范围内取整数时,判定该表达式的值是否都为素数。
解题思路:这个题是要判断表达式的值是否都为素数,所以我想到先定义一个判断素数的函数,然后问题就简单了,只需要用for语句把(x,y)范围内的数求出表达式的值再判断是不是素数就可以了。最后输出的时候要注意换行,并且每行的数字之间要用空格间隔。
代码:
#include<stdio.h>
int ss(int k)
{
int a,b;
if(k==1) return 0;
if(k==2) return 1;
else
{
for(a=3,b=0;a<=k/2;a++)
if(k%a==0) {b++;return 0;}
if(b==0) return 1;
}
}
int main()
{
int n,i,j,k,x,y,sum;
while(scan