永发信息网

C语言问题,这怎么等于15.000000的啊,第二个for语句中的n=m不运行吗?

答案:3  悬赏:0  手机版
解决时间 2021-03-07 07:10
  • 提问者网友:爱了却不能说
  • 2021-03-06 12:24
#include
int main()
{
int m, n;
float k;
for (m = 6; m > 2; m--)
{
k = 0;
for (n = m; n > 1; n--)
k = k + m*n;
}
printf("%f\n",k);
getchar();
}
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-03-06 13:00
第二个for语句中的n=m是运行的。
由于内循环中开头有m=0;这一句,导致前面的累加“前功尽弃”。
实际有效的是:
m=3
k=3*3+3*2
所以,最后输出是15.000000
全部回答
  • 1楼网友:旧脸谱
  • 2021-03-06 14:11
把k=0放到for的外面,即 #include int main() { int m, n; float k; k = 0; for (m = 6; m > 2; m--) { for (n = m; n > 1; n--) k = k + m*n; } printf("%f\n",k); getchar(); }
  • 2楼网友:蕴藏春秋
  • 2021-03-06 14:02
k=0 定义在循环内,外循环每执行一次k都变成0。 最后为m=3,k=0.n=3,k=9 m=3,k=9,n=2,k=15 你想要的结果应该是k的初始化在循环之前(或定义的同时)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯