解题思路以及注意事项:

  1. 注意前面用double定义后面输出就得用%lf。

  2. 注意循环开始和结尾,否则容易出错。

实例代码:

#include"stdio.h"
int main()
{
    double a,b,c,sum1=0,sum2=0,sum3=0,i,sum=0;
    scanf("%lf",&a);
    scanf("%lf",&b);
    scanf("%lf",&c);
    for(i=1;i<=a;i++)                 //开始和结束非常重要
    {
        sum1+=i;    
    }
    for(i=1;i<=b;i++)
    {
        sum2+=i*i;
    }
    for(i=1;i<=c;i++)
    {
        sum3+=1.0/i;                  //注意要用1.0/i
    }
    sum=sum1+sum2+sum3;
    printf("%.2lf",sum);
    return 0;
}

还有什么不懂的请在下面评论区留言,小方会及时为您解答

点赞(40)
 

0.0分

64 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 165 条评论

编程小顽石 1年前 回复TA
@虹山上峰 跟我犯的错误一样,你该把4个变量名sum换成其他字符代替,比如sum1,sum2,sum3,sum,,不然你这就相当于sum依次经过3个for循环,而你的本意是前三个sum是3个变量,所以变量名区分一下就行了
编程小顽石 1年前 回复TA
#include<stdio.h>
int main(void)
{
	int a=0,b=0,c=0;
	scanf("%d %d %d",&a,&b,&c);
	double sum1,sum2,sum3,sum=0;
	int i;
	for(i=1; i<=a; i++)
	{
		sum1+=i;
	}
	for(i=1; i<=b; i++)
	{
		sum2+=i*i;
	}
	for(i=1; i<=c; i++)
	{
		sum3+=1.0/i;
	}
	sum=sum1+sum2+sum3;
	printf("%0.2lf",sum);
	return 0;
}
旅行的鹅 2年前 回复TA
#include<stdio.h>
#include<math.h>
int main()
{
	int a, b, c,an=0,bn=0,i,j,k;
	float cn=0,sum=0;
	scanf_s("%d%d%d", &a, &b, &c);
	for (i = 1; i <= a;i++)
		an += i;
	for (j = 1; j <= b; j++)
		bn += pow(j, 2);
	for(k=1;k<=c;k++)
		cn += 1.0 / k;
	 sum = an + bn + cn;
	printf("%d\t", an);
	printf("%d\t", bn);
	printf("%f\n", cn);
	printf("%.2f\n", 1.0 * sum);
}
大佬们,我这个为什么显示答案错误啊
Abyss 2年前 回复TA
@小胡学c语言 第二、三个i没有赋初值,第一个执行完后i的值已经不是1了
uq_55582603613 2年前 回复TA
@uq_16461827833 不是i的i次幂,是平方
uq_61560519501 2年前 回复TA
@小胡学c语言 好像C语言定义变量只能放在前面
小胡学c语言 2年前 回复TA
#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int temp1=0,temp2=0;
    float temp3=0;
    for(int i=1;i<=a;i++)
    {
        temp1=temp1+i;
    }
    for(int i;i<=b;i++)
    {
        temp2=temp2+i*i;
    }
    for(int i;i<=c;i++)
    {
        temp3=temp3+1.0/i;
    }
    printf("%.2f\n",temp1+temp2+temp3);
    return 0;
}
为什么运行不对啊!
有人可以解释一下吗?
琴海 2年前 回复TA
@落日 对,应该是pow(i,2)
热爱自动化007 2年前 回复TA
@uq_16461827833 三个数列的和,不能只用一个S,要分开
白色卷心菜 2年前 回复TA
@落日 pow没对吧,求得是平方和,不是i的i次幂