1.菜单:
#include<stdio.h> #include<math.h> int sign(int x); int even(int n); int prime(int m); int countdigit(int number,int digit); int is(int number); int main() { int choice=0; int n; int x,y,sum=0; int digit,in,c; do{ printf("**************实验六:函数************** "); printf("****1.计算并输出分段函数f(x)的值******* "); printf("****2.使用函数求奇数和***************** "); printf("****3.计算素数个数并求和*************** "); printf("****4.统计指定数字的个数*************** "); printf("****5.输出m~n之间的所有水仙花数******** "); printf("****请输入一个题号:"); scanf("%d",&choice); switch(choice) { case 1:printf("请输入x的值:"); scanf("%d",&x); y=sign(x); printf("f(x)=%d ",y); break; case 2:printf("输入一批正整数:"); do{ scanf("%d",&n); if(n>0){ y=even(n); if(y==0){ sum=sum+n; } } }while(n>0); printf("sum=%d ",sum); break; case 3:int c,i,m,n,sum; scanf("%d%d",&m,&n); c=sum=0; for(i=m;i<=n;i++) if(prime(i)!=0) { c++; sum=sum+i; } printf("c=%d,sum=%d ",c,sum); break; case 4: scanf("%d%d",&in,&digit); c=countdigit(in,digit); printf("number %d of digit %d:%d ",in,digit,c); break; case 5:scanf("%d%d",&m,&n); printf("result: "); for(i=m;i<=n;i++) if(is(i)!=0) printf("%d ",i); break; } }while(choice!=0); return 0; } int sign(int x) { int y; if(x>0){ y=1; } else if(x==0){ y=0; } else{ y=-1; } return y; } int even(int n) { int x; if(n%2==0) x=1; else x=0; return x; } int prime(int m) { int j,i; if(m==1) return 0; j=sqrt(m); for(i=2;i<=j;j++) if(m%i==0) return 0; return 1; } int countdigit(int number,int digit) { int c; if(number<0) number=-number; c=0; do{ if(number%10==digit) c++; number=number/10; }while(number!=0); return c; } int is(int number) { int digit,sum,temp; temp=number; sum=0; while(temp!=0){ digit=temp%10; temp=temp/10; sum=sum+pow(digit,3); } return sum==number; }
2.用数组来处理求Fibonacci数列问题(求前40项):
#include<stdio.h> int main(void) { int i; long int f[40]={1,1}; for(i=2;i<40;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<40;i++) { if(i%5==0) printf(" "); printf("%12ld",f[i]); } printf(" "); }