作业4
//定义函数f(n)计算n+(n+1)+…+(2n-1),函数返回值类型是double。(2)在主函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算n+(n+1)+…+(2n-1)。 #include<stdio.h> int main(void) { double f(int n); double s=0; int n; printf("enter n:"); scanf("%d",&n); //自定义函数f(n)来计算 s=f(n)+s; //输出s的值 printf("s=%.3f",s); return 0; } double f(int n) { double result,t; int i; result=0; t=0; //循环整个的 for(i=1;i<=n;i++){ //输出每个的小部分 for(i=1;i<=2*n-1;i++) { t=i+t; } result=result+1/t; } return result; }
//编写一个程序,判断从键盘接收的数字是否为回文数字。回文数字就是顺着看和倒着看是相同的数。如121、656、2332等。 #include<stdio.h> int main(void) { int i,n; int x,y;//x是开始计算的数组下标,而y是末尾计算的数组下标 x=0;//给x,y赋予初值 y=0; printf("enter n:"); scanf("%d",&n); //定义并输入数组 int a[80]; //运用for循环输入数组 for(i=1;i<n;i++) { printf("enter a[]:"); scanf("%d",&a[i]); } for(x=0,y=n;x<y;x++,y--) { if(a[x]!=a[y])//判断首尾两个字符是否相等,若不相等则不需要继续 break; } if(x>=y)//for循环正常结束,是回文 printf("是回文。"); else//循环不正常结束,不是回文 printf("不是回文"); return 0; }
//输入x、n后输出下列算式的值,fact(n)实现n!,mypow(x,n)实现x^n #include<stdio.h> #include<math.h>//运用数学公式的时候必须用到的 int main(void) { int x,i,n;//x用来计算他的阶层 double s; s=0; double fact(int n); double mypow(int x,int n); printf("enter x,n:"); scanf("%d%d",&x,&n); for(i=1;i<=n;i++) //用fact和mypow这两个自定义函数 { s=s+pow(-1,i-1)*mypow(x,n)/fact(n); } printf("s=%.3f",s); return 0; } //计算n的阶层 double fact(int n) { int i; double result; result=1; for(i=1;i<=n;i++) { result=1*result; } return result; } //不用数学公式,用调用函数计算x^n double mypow(int x,int n) { double result; result=1; int i; for(i=1;i<=n;i++){ result=result*x; } return result; }
//输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。 #include<stdio.h> #include<math.h> int main(void) { int n,m,i;//m>=1,n<1000 int x,y,z;//x是个位数,y是十位数字,z是百味数字 x=0,y=0,z=0;//给x,y,z给于初值 printf("enter m,n:"); scanf("%d%d",&m,&n);//输入m,n for(i=m;i<=n;i++){ x=i%10;//用三个算式计算个位,十位,百位数字 y=(i/10)%10; z=i/100; if(pow(x,3)+pow(y,3)+pow(z,3)==i) printf("i=%d\n",i); if(x+y+z==i) printf("%d各位数字之和等于其自身\n",i); } return 0; }