计算s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值
当某一项的值超过50时,结束循环,并将当时的s的值进行输出,将当时刚好超过50的那一项的值和项数一并输出;
如果最终项的值没有超过50,则按循环计划计算完所有的累加和,也将最终项的值和项数一并输出。
计算s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值
当某一项的值超过50时,结束循环,并将当时的s的值进行输出,将当时刚好超过50的那一项的值和项数一并输出;
如果最终项的值没有超过50,则按循环计划计算完所有的累加和,也将最终项的值和项数一并输出。
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main(int argc,char * argv[])
{
int summer,summer2,num;//声明和与项数变量
summer=0,summer2=0;//初始化和变量
num=atoi(argv[1]);//将命令行第二个参数转化为整数项数
for(int i=1;i<=num;i++)//进行循环求和
{
summer+=i;
summer2+=summer;
if(summer>50)//当某一项的值大于50时
{
printf("计算总和是%d\n超过50的项是第%d项\n",summer2,i);
printf("该项的值是%d\n",summer);
return 0;
}
}
printf("计算总和是%d\n,最后一项是%d\n没有任何一项的值超过50\n",summer2,num);//当任一一项的值均不大于50时
return 0;
}
代码编译运行正确无误,使用格式为:×××.exe number。***.exe指本地编译成的程序,number是要循环计算的项数。二者之间有一个空格。如果我对题目的理解有误,请私信我或者评论处给我留言。