为了账号安全,请及时绑定邮箱和手机立即绑定

c语言 请问大神们这个关于乘法表的问题?

c语言 请问大神们这个关于乘法表的问题?

C C# C++
慕粉18531160466 2016-06-26 11:29:31
#include<stdio.h>int main(){    int a,b,sum;        sum=a*b;            for(a=9;a>=1;a--){                for(b=1;b<=a;b++){                                      printf("%d*%d=%d  ",a,b,sum);            }                        printf("\n");        }            return 0;        }这段代码的输出乘法表的结果都是错的,可如果把第四行sum=a*b移到第七行printf前就完全正确,这里sum不都是被赋值为两个未知数的乘积么?为什么结果会不一样?
查看完整描述

4 回答

?
黑色旋风

TA贡献20条经验 获得超25个赞

你放在第四行才是赋值为两个未知数的乘积。

第5、6行在for循环中都会改变a、b的值,放在第7行才能正确计算每个改变的a、b的乘积。

查看完整回答
2 反对 回复 2016-06-26
?
二次元仓鼠

TA贡献4条经验 获得超3个赞

 sum=a*b;是赋值运算,但是在第四行这里,a,b还并没有初值呢对不对,所以会报错;

而放到第七行,你在for循环中已经对a,b进行了赋值操作了,所以 sum=a*b;可以进行计算和赋值了

查看完整回答
1 反对 回复 2016-06-26
?
MRCCAN

TA贡献1条经验 获得超1个赞

如果放在第四行sum=a*b,假设a,b初值为0的话,sum=0,在接下来的程序中未改变sum值,所以sum一直输出是0;

如果是第七行sum=a*b,假设a,b初值为0的话,sum=0,进入循环a=9,b=1,sum被赋值为9,输出9,然后a=9,b=2,sum被赋值为18,以此类推,所以有效。

查看完整回答
1 反对 回复 2016-06-26
?
东慕冢_c

TA贡献1条经验 获得超1个赞

在没有定义函数的情况下,代码是需要一行一行运行下来的,只有在for循环中运行sum=a*b;才能将新的a*b赋值给sum。要记住的是,代码运行顺序。代码也不是出现了一定会运行的

查看完整回答
1 反对 回复 2016-06-26
  • 4 回答
  • 1 关注
  • 1739 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信