C语言 求多次运算前N项的和。

RT,就是运算的次数N由自己输入。然后再根据每次输入的数来计算前N项和并输出。
如输入:
3(代表3个运算)
4
5
2
则程序输出:、
10
15
3
就是这样,谢谢!!
看我输出的
首先是3,表示接下来有3个计算;
接着输入 4 5 2 则是三次计算分别所代表的N
则4+3+2+1=10 5+4+3+2+1=15 2+1=3
所以输出
10
15
3

#include<stdio.h>
#include<stdlib.h>

int main()
{
int count;
int num;
printf("输入运算次数:");
scanf("%d",&count);
for (int i = 0; i < count; i++)
{
printf("输入第%d个运算的项数:",i+1);
scanf("%d",&num);
printf("前%d项和为:%d\n",num,(num*(num+1))/2);
}
system("pause");
return 0;
}

追问

能不能一次性输出结果,不要输入一次输出一次

追答

这个没有动态分配内存只是简单的实现,严格来说num的数组大小应该是根据输入的count来分配内存的 但是这里为了方便直接给了个1024 影响不大

#include<stdio.h>
#include<stdlib.h>

int main()
{
int count;
int num[1024];
printf("输入运算次数:");
scanf("%d",&count);
for (int i = 0; i < count; i++)
scanf("%d",&num[i]);
printf("前N项和分别为:\n");
for (int i = 0; i < count; i++)
    printf("%d\n",(num[i]*(num[i]+1))/2);
system("pause");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-19
#include <stdio.h>
#include <malloc.h>
int jc(int n)
{
    if(n = 1)
    {
        return 1;
    }
    else
    {
        return n + jc(n-1);
    }
}
int main()
{
    int i = 0;
    int cnt = 0;
    int * a = NULL;
    scanf("%d",&cnt);
    a = (int *)malloc(cnt * sizeof(int));
    for(i = 0;i < cnt; i ++)
    {
        scanf("%d",a+i);
    }
    for(i = 0;i < cnt;i ++)
    {
        printf("%d\n",jc(a[i]));
    }
    free(a);
    return 0;
}

追问

输出的结果好像不太对

追答

第五行,改为if(n==1) 失误了……没调试……

追问

好的,可以了,谢谢

追答

如果无误,请采纳~~谢谢~~

相似回答