解题思路以及注意事项:
注意前面用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 人评分
为什么要用1.0/i而不是1/i
}#include <stdio.h> int main() { int i; float a,b,c; float j=0; float q=0; float w=0; float d; scanf("%f%f%f",&a,&b,&c); for(i=1;i<=a;i++) { j=j+i; } for(i=1;i<=b;i++) { i=i*i; q+=i; } for(i=1;i<=c;i++) { i=1/i; w+=i; } d=j+q+w; printf("%.2f\n",d); return 0; } 你好 为什么我这样写就没有结果,而把for中写成一条表达式就有正确的值出来,例如w+=1/i; 这样输出的结果才是正确的,想不明白 不是一样的吗?
# include <stdio.h> int main (void) { double a , b , c ,i; double sum , sum_a , sum_b , sum_c ; sum = sum_a = sum_b = sum_c = 0; scanf ("%lf %lf %lf" , &a , &b , &c); for (i = 1 ; i <= a ; i++) { sum_a += i; } for (i = 1 ; i <= b ; i++) { sum_b += i * i; } for (i = 0 ; i <= c ; i++) { sum_c += 1/c; } sum = sum_a + sum_b + sum_c ; printf ("%.2lf\n" , sum ); return 0; } 这有错吗? 为什么得不到题中的结果
陈雨斌 2017-08-11 22:27:22 |
搞错了……
Mister-小方 2017-08-12 07:54:26 |
恩呢
细水爱长流 2017-08-21 20:24:36 |
因为输出是浮点数,所以定义数据类型的时候,是不是就必须直接定义成double
laolin2333 2017-12-08 18:29:37 |
sum_c += 1/c;里面的c改成i
假币问题 (C++代码)(向上取整的一种处理方式)浏览:1660 |
C语言训练-委派任务* (C语言代码)..................竟然是第一个浏览:2174 |
C语言训练-求函数值 (C语言代码)浏览:910 |
2^k进制数 (C++代码)使用递归方法浏览:721 |
震宇大神的杀毒软件 (C语言代码)浏览:1240 |
简单的a+b (C语言代码)浏览:642 |
C语言训练-求具有abcd=(ab+cd)2性质的四位数 (C语言代码)浏览:560 |
不会做的浏览:870 |
兰顿蚂蚁 (C++代码)浏览:1044 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |
小菜 2018-05-21 23:10:26 |
不可以
itwai 2018-10-14 15:28:08 |
为什么不可以