C语言,编写一程序输入一个正整数n,计算并输出s的前n项和,s=1/2-2/3+3/4-4/5+......(-1)n/(n+1)

供稿:hz-xin.com     日期:2025-01-13
C语言 输入一个正整数n,计算1-1/2+2/3-3/5的前n项和,输出结果保留两位小数。项的变化规律:

#include
void main( )
{
int fz,fm,flag,i,n,temp;
double item,sum;
printf("请输入一个正整数:");
scanf("%d", &n);
sum=0; fz=1; fm=1; flag=1;
for(i=1;i<=n;i++){
item=(double)fz*flag/fm;
sum=sum+item;
flag=-flag;
temp=fz;
fz=fm;
fm=temp+fz;
}
printf("1-1/2+2/3-3/5+...的前 %d 项之和等于%0.2f
", n,sum);
}

#includedouble calculation(int n){int fz = 0;//分子int fm = 1;//分母 int i,k=1;//求分母 for(i=0;i<n;i++){fm *= k;k+=2;}//求分子for(i=0,k=1;i<n;i++){fz += fm/k;k+=2;} printf("%d,%d
",fz,fm);return fz*1.0/fm;}int main(){int n;printf("请输入N:"); scanf("%d",&n);printf("%f
",calculation(n));}统分了再计算

如果你不把flag 改为float型的话 

运行的结果是 0哦



main(){ int k,flag=1,n;float s=0;scanf("%d",&n);for(k=1;k<=n;k++){ s=s+__flag*(k/k+1)______; _____flag= (-1)*flag_____;}printf("sum=%f\n",s);} 拷贝你提问中的代码,但是for后边的分号明显是手误,给你改了一下

flag*k/(k+1);flag=flag*(-1)

在C语言中,int整形里,“/”号是除以后去整的意思,这里如果不修改flag的形式,得出来的1/2 2/3取整后都是0,结果永远是0。 一句话来说就是,这个题目错了

C语言,编写一程序输入一个正整数n,计算并输出s的前n项和,s=1\/2-2\/...
运行的结果是 0哦

如何编程实现输入一个正整数n,然后输出n的阶乘?
fac *= i;} printf("fac = %d\\n", fac);return 0;} 这里使用scanf函数从键盘输入一个正整数n,然后使用循环计算n的阶乘fac。循环中,从1到n依次乘上每个数,最终得到n的阶乘。最后,输出n和fac的值。运行程序后,输入一个正整数n,程序会计算n的阶乘并输出。

c语言如何输入一个正整数N再输入N个整数按从小到大的顺序输出
int arr[100]; \/\/ 假设N不超过100,可以根据需要调整大小 printf("请输入一个正整数N: ");scanf("%d", &N);if (N <= 0) { printf("请输入一个正整数。\\n");return 1;} printf("请输入%d个整数:\\n", N);for (i = 0; i < N; i++) { scanf("%d", &arr[i]);} \/\/...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
思路:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。参考代码:include <stdio.h>int main(){ int n,num=0;scanf("%d",&n);while(n){num++;n\/=10;}printf("%...

用C语言输入一个正整数n,将其逆序输出?
以下是用C语言输入一个正整数n,将其逆序输出的代码:```c include <stdio.h> int main() { int n, rev = 0;printf("请输入一个正整数:");scanf("%d", &n);while(n != 0) { rev = rev * 10 + n % 10;n \/= 10;} printf("逆序输出为:%d\\n", rev);return 0;} ```...

编写程序,输入1个正整数n(1<n<=10),再输入n个整数,按绝对值从小到大排序...
1 #include "stdio.h" #include <math.h> void main() { int n,m,swap; int i,j; int a[10]; printf("请输入整数个数n:"); scanf("%d",&n); printf("请输入n个整数(每输入一个数按Enter键一下):\\n"); for(i=0;i<n;i++) { scanf("%d",&m); a[i]=m; } for(i...

如何用C语言编写程序输入一个正整数n,编程序输出从2到n间的所有完数...
C语言实现如下:include<stdio.h> void main(){ int i,j,k,n;scanf("%d",&n); \/\/输入一个正整数n for(i=2;i<=n;i++){ k=0;for(j=1;j<=i-1;j++)if(i%j==0) k+=j;if(k==i) printf("%d\\n",i);\/\/判断i的所有真因子之和是否等于i,是则输出i。} } 注意:...

用C语言编写程序,输入一个正整数n(1<n<=10),再输入n个整数,将这n个数...
int i,j,n;int a[12];int min,mx;scanf("%d",&n);for(i=0;i<n;i++){ scanf("%d",&a[i]);} for(i=0;i<n;i++){ min=a[i];mx=i;for(j=i+1;j<n;j++){ if(a[j]>min){ min=a[j];mx=j;} } j=a[i];a[i]=a[mx];a[mx]=j;} for(i=0;i<n;i+...

c语言编程 输入正整数n,求n是几位数
当你输入一个正整数n时,你需要编写一个C语言程序来确定n是几位数。这可以通过计算n的位数来实现。具体来说,你可以使用循环来将n除以10,直到n小于10为止。每次除以10时,计数器加1,最终计数器的值就是n的位数。以下是一个简单的C语言程序,可以实现这个功能:```include <stdio.h> int main(...

用c语言编写:输入一个正整数n,再输入n个字符,统计其中英文字母、空格...
用c语言编写:输入一个正整数n,再输入n个字符,统计其中英文字母、空格、数字字符和其他字符的个数? 求问我到底错在哪了啦!#include<stdio.h>intmain(){intn,a=0,b=0,c=0,d=0,i;chare;scanf("%d",&n);getchar();for(i=1;i<=a;i++){scanf("%c",&e);if(e>='a'&&e<='z'||e>='A...