实验7
#include<stdio.h> #include<math.h> int sign(int x); double even(int n); int prime(int m); double countdigit(int number,int digit); int number(int m,int n); int main() { int i,n; do{ printf("********************************\n"); printf("** -------------实验六:函数 ----------------- **\n"); printf("** -------1.计算并输出分段函数f(x)的值 ------ **\n"); printf("** -------2.使用函数求奇数和 ---------------- **\n"); printf("** -------3.计算素数个数并求和 -------------- **\n"); printf("** -------4.统计指定数字的个数 -------------- **\n"); printf("**-------5.输出m~n之间的所有水仙花数 ------- **\n"); printf("********************************\n"); printf("请输入题号:"); scanf("%d",&i); switch(i){ case 1: { int x,y; printf("输入任意值确认。\n"); scanf("%d",&x); printf("请输入x值:"); scanf("%d",&x); y=sign(x); printf("f(x)=%d\n",y); }break; case 2: { int n,sum=0; double num; printf("输入任意值确认。\n"); scanf("%d",&n); printf("输入一批正整数(以零或负数为结束标志):"); do{ scanf("%d",&n); num=even(n); if(0==num){ printf("%d是奇数\n",n); sum=sum+n; } else if(1==num){ printf("%d是偶数\n",n); } else{ printf("Unknow"); } }while(n>0); printf("奇数和=%d\n",sum); }break; case 3: { int sum=0,m,h=0,n; printf("输入任意值确认。\n"); scanf("%d",&n); printf("Input m,n:"); scanf("%d%d",&m,&n); for(m;m<=n;m++){ if(prime (m)!=0){ h=h+m; sum++; } } printf("素数的个数为:%d,素数的合为:%d",sum,h); } break; case 4: { int digit=0,y=0,number,i,n; printf("输入任意值确认。\n"); scanf("%d",&n); double sum,sum1=0; printf("Input number,digit,n(n为输入数字位数):"); scanf("%d%d",&number,&digit); sum=countdigit(number,digit); } break; case 5: { int m,n; printf("输入任意值确认。\n"); scanf("%d",&n); printf("Input m,n:"); scanf("%d%d",&m,&n); number(m,n); }break; case 0:break; } }while(i!=0); return 0; }
int sign(int x) { int y; if(x>0) y=1; else if(x<0) y=-1; else y=0; return y; }
double even(int n) { if(n%2==0) return 1; else return 0; }
int prime(int m){ int i,n; if(m==1)return 0; n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0){ return 0; } return 1; }
double countdigit(int number,int digit) { int n,digit1,i,y=0; double sum,sum1=0; digit1=number*10; scanf("%d",&n); for(i=1;i<=n;i++){ digit1=digit1/10; y=digit1%10; if(y==digit){ sum1++; } } printf("该数字中%d的个数为%.0lf",digit,sum1); return sum; }
int number(int m,int n){ for(m;m<n;m++){ int digit=m; int digit1=0,digit2=0,digit3=0; digit1=digit/100;digit%=100; digit2=digit/10; digit3=digit%10; if(pow(digit1,3)+pow(digit2,3)+pow(digit3,3)==m){ printf("%d是水仙花数\n",m); } else printf("%d不是水仙花数\n",m); } return 0; }