您的位置:首页 > 编程语言 > C语言/C++

C程序设计课程-第八次实验任务

2013-05-17 12:22 246 查看
上机题1:任意输入两个整数(-1000<n<10000),将两数分别反转(逆序)后两相加,相加后的结果再反转后输出
#include<stdio.h>
int inversion(int x)
{
int a=0;
while(x!=0)
{
a=a*10+x%10;
x=x/10;
}
return a;
}
void main()
{
int x,y;
int sum;
printf("输入两个整数:");
scanf("%d %d",&x,&y);
x=inversion(x);
y=inversion(y);
sum=x+y;
sum=inversion(sum);
printf("输出结果:%d\n",sum);
}

 



-----------------------分割线-----------------------
上机题2:求1+2!+3!+...+20!的和

要求:利用递归函数

#include<stdio.h>
int factorial(int x)
{
int b=1;
if(x>=1)
b=x*factorial(x-1);
return b;
}
void main()
{
int x=1;
int sum=0;
while(x<=20)
{
sum=sum+factorial(x);
x++;
}
printf("1!+2!+3!+...+20!=%d\n",sum);
}




-----------------------分割线-----------------------
上机题3:编写程序,输入一个正整数N,如果N 是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”

要求:利用自定义函数P(N)检查N 是不是质数

#include<stdio.h>
int P(int N)
{
int i;
if(N<2)
printf("质数是不能小于2,请重新输入!\n");
else
{
i=2;
while(i<=N)
{
if(N%i==0) break;
i++;
}
if(i<N)
printf("NO\n");
else
printf("YES\n");
}
return NULL;
}
void main()
{
int n;
int i=1;
while(i<=5)
{
printf("输入一个正整数:");
scanf_s("%d",&n);
printf("%d",P(n));
i++;
}
}




 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息