解题思路以及注意事项:
注意前面用double定义后面输出就得用%lf。
注意循环开始和结尾,否则容易出错。
实例代码:
#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; }
还有什么不懂的请在下面评论区留言,小方会及时为您解答
0.0分
82 人评分
#include<stdio.h> int main(){ int sum1=0; int sum2=0; int sum3=0; int i; i=1; float a,b,c; scanf("%f%f%f",&a,&b,&c); while(i<a){ sum1=sum1+i; i++; printf("%.2f\n",sum1); } while(i<b){ sum2=sum2+i*i; i++; printf("%.2f\n",sum2); } while(i<c){ sum3=sum3+1.0/i; i++; printf("%.2f\n",sum3); } } 请问为什么这么写运行的结果都是0.00呢?
Kuulu 2019-01-09 17:18:57 |
sum1 sum2 sum3 你变量设置为整数了
#include<stdio.h> int main() { double a,b,c; double x1=0,x2=0,x3=0; int i,j,k; double x; printf("ple enter three nums:"); scanf("%lf %lf %lf",&a,&b,&c); for(i=1;i<a+1;i++) { x1+= i; } for(j=1;j<b+1;j++) { x2+= (j*j); } for(k=1;k<c+1;k++) { x3+= (double)1/k; } x=x1+x2+x3; //printf("x1=%lf,x2=%lf,x3=%lf\n",x1,x2,x3); printf("%.2lf",x); return 0; } 这个哪里有问题呢,测试了样例输入,没问题啊,提交就报错
sss 2018-10-11 23:22:02 |
MD把那个print去掉就对了。。。。。
#include<stdio.h> int sum_a(int a) { int i,result=0; for(i=1;i<=a;i++) result+=i; return result; } int square_sum(int a) { int i,result=0; for(i=1;i<=a;i++) result+=i*i; return result; } double reciprocal_num(int a) { int i; double result=0; for(i=1;i<=a;i++) result+=1.0/i; return result; } int main(void) { int a,b,c; double sum=0; printf("Please enter three numbers:"); scanf("%d %d %d",&a,&b,&c); sum=sum_a(a)+square_sum(b)+reciprocal_num(c); printf("%.2lf",sum); return (0); }
#include<stdio.h> int main() { double sum1=0,sum=0,sum2=0,sum3=0,a,b,c,i; scanf("%Lf %Lf %Lf",&a,&b,&c); for(i=1;i<=a;i++) { sum1=sum1+i; } for(i=1;i<=b;i++) { sum2=sum2+i*i; } for(i=1;i<=c;i++) { sum3=sum3+1.0/i; } sum=sum1+sum2+sum3; printf("%.2Lf",sum); return 0; } 为什么会提示答案错误呢
stadio 2018-08-26 19:06:10 |
注意前面用double定义后面输出就得用%lf。这里正确应为英文字母小写的l,而不是你英文字母大写的L。如果前面用long double定义后面输出就得用%Lf。
#include <stdio.h> int main() { double a=0,b=0,c=0,d=0,e=0; double suma=0,sumb=0,sumc=0,sum=0; scanf("%Lf",&a); scanf("%Lf",&b); scanf("%Lf",&c); for (a;a>0;a--) { suma=suma+a; } for (b;b>0;b--) { sumb = sumb + b*b; } for (c;c>0;c--) { sumc = sumc +(1.0/c); } sum = suma + sumb + sumc; printf ("%.2Lf\n",sum); return 0; } 您好,请问这段程序为什么在本网站运行中 会出现 “答案错误”,谢谢
Christ 2018-07-15 09:15:18 |
printf Lf 输出的是 long double, 输出double 用lf就好了
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:754 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:823 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:568 |
ASCII帮了大忙浏览:748 |
打水问题 (C语言代码)浏览:1063 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:449 |
哥德巴赫曾猜测 (C语言代码)浏览:2316 |
1025题解浏览:732 |
小芳 2018-12-07 15:45:02 |
"sum+=i" 意思是 sum=sum+i 简略写法