解题思路以及注意事项:
注意前面用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 人评分
我用的vs2019, 输入 100 50 10,最后输出是47976.00 搞不明白 #include<stdio.h> int main(void) { double a, b, c, i, sum1 = 0, sum2 = 0, sum3 = 0, sum; 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 / c; } sum = sum1 + sum2 + sum3; printf("%0.2lf\n", sum); return 0; }
# include <stdio.h> int main() { double a, b, c; double i, j, k; i,j = 0; k = 1; double sum = 0; scanf ("%lf %lf %lf", &a, &b, &c); while (i <= a) { sum = sum + i; i++; } while (j <= b) { sum = sum + j*j; j++; } while(k <= c) { sum = 1.0/k + sum; k++; } printf("%0.2lf",sum); return 0; } 样例可以通过,但还是显示答案错误,是哪里有问题呢?
#include <stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); int sum1=0,sum2=0; double sum3=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; } printf("%.2f",sum1+sum2+sum3); return 0; }
#include<stdio.h> int main() { double a,b,c,sa,sb,sc,i; scanf("%lf%lf%lf",&a,&b,&c); for(sa=0,i=1;i<=a;i++) sa=sa+i; for(sb=0,i=1;i<=b;i++) sb=sb+i*i; for(sc=0,i=1;i<c;i++) sc=sc+(1.0)/i; printf("%lf",sa+sb+sc); return 0; } 为什么会显示答案错误呢
onemorecod 2020-07-08 14:15:16 |
scanf中的%lf之间要加空格
勤勤恳恳 2020-08-12 11:40:33 |
保留两位小数?
#include <stdio.h> int main (void) { double a,b,c,d=1,f=1,h=1; int i,j,k; scanf("%lf%lf%lf", &a,&b,&c); double e=a; for(i = 1; i <a; ++i) { e+=d; d++; } double g=b*b; for(j = 1; j < b; ++j) { g+=f*f; f++; } double n=1/c; for(k = 1; k < c; ++k) { n+=1/h; ++h; } printf("%.2lf", e+g+n); return 0; } 虽然正确,但是复杂一些- -
为什么要用1.0而不是1/i
#include<bits/stdc++.h> using namespace std; int main() { int a,b,c,he;//和 long long p;//平方和 float d;//倒数和 float sum=0; cin>>a>>b>>c; he=a*(1+a)/2.0; p=b*(b+1)*(2*b+1)/6.0; for (float i = 1; i <= c; i++) { d += 1 / i; } sum=he+p+d; printf("%.2f",sum); return 0; } 感谢一下初高中数学?
#include<stdio.h> #include<math.h> int main(){ int a,b,c,i=1,j=1,k=1; double sum1=0,sum2=0,sum3=0,sum=0; scanf("%d%d%d",&a,&b,&c); while(i<=a){ sum1=sum1+i; i++; } while(j<=b){ sum2=sum2+pow(i,2); j++; } while(k<=c){ sum3=sum3+1.0/i; k++; } sum=sum1+sum2+sum3; printf("%.2f",sum); return 0; }我想知道这个程序哪里出了问题,我发现答案一直都是错的。。。
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:480 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:804 |
输出正反三角形 (C语言代码)浏览:779 |
WU-小九九 (C++代码)浏览:1680 |
DNA (C语言描述,数据结构)浏览:849 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:447 |
1014题解浏览:484 |
链表数据求和操作 (C语言代码)浏览:938 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
小周同学 2020-11-10 20:58:51 |
用float试试
0114刁稳 2020-11-11 20:01:45 |
sum3 = sum3 + 1.0 / c;这里不是除以c是除以i