上机题1:任意输入两个整数(-1000<n<10000),将两数分别反转(逆序)后两相加,相加后的结果再反转后输出
#include<stdio.h>
int fanzhuan(int a)
{
int b=0;
while(a!=0)
{
b=b*10+a%10;
a=a/10;
}
return b;
}
void main()
{
int a,b,c,m;
scanf_s("%d,%d",&a,&b);
if(a<1000&&a>-1000&&b<1000&&b>-1000){
c=fanzhuan(a)+fanzhuan(b);
m=fanzhuan(c);
printf("%d",m);
}
}
-----------------------分割线-----------------------
上机题2:求1+2!+3!+...+20!的和
要求:利用递归函数
#include <stdio.h>
int F(int n)
{
int result;
if(n==0||n==1)
result=1;
else
result=n*F(n-1);
return result;
}
void main()
{
int sum,i;
for(i=1;i<=20;i++)
sum=F(i);
printf("输出1+2!+3!+...+20!=%d\n",sum);
}
-----------------------分割线-----------------------
上机题3:编写程序,输入一个正整数N,如果N 是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
#include <stdio.h>
void main()
{ int n,i,j;
for(j=0;j<=10;j++)
{
printf("请输入一个正整数:\n");
scanf("%d",&n);
if(n<2)
printf("质数是不能小于2,请重新输入");
else
{
for(i=2;i<=n;i++)
{
if(n%i==0)
break;
}
if(i<n)
printf("NO\n");
else printf("Yes\n");
}
}
}
要求:利用自定义函数P(N)检查N 是不是质数