在开头定义result=i*j,为什么打印的相乘结果都是0?

来源:4-13 使用for循环打印9×9乘法表

慕妹6243540

2019-03-25 16:07

如题,我在开头定义了result:

#include <stdio.h>

int main() 

    // 定义相乘数字i,j以及结果result

    int i, j, result;

    result=i*j;

        for(i=9;i>0;i--)

    {

        for(j=10-i;j<10;j++)

        {

            printf("%d*%d=%d",i,j,result);

            /*printf("%d*",i);

            printf("%d=",j);

            printf("%d",result);*/

        }

        printf("\n");

    }

  

    return 0;

}

但是输出结果:

9*1=0 9*2=0 9*3=0 9*4=0 9*5=0 9*6=0 9*7=0 9*8=0 9*9=0 

8*2=0 8*3=0 8*4=0 8*5=0 8*6=0 8*7=0 8*8=0 8*9=0 

7*3=0 7*4=0 7*5=0 7*6=0 7*7=0 7*8=0 7*9=0 

6*4=0 6*5=0 6*6=0 6*7=0 6*8=0 6*9=0 

5*5=0 5*6=0 5*7=0 5*8=0 5*9=0 

4*6=0 4*7=0 4*8=0 4*9=0 

3*7=0 3*8=0 3*9=0 

2*8=0 2*9=0 

1*9=0 

求教~~~~~~

写回答 关注

2回答

  • weixin_慕哥0274688
    2019-03-25 22:12:53
    已采纳

    你把result=i*j写在循环外自然是这样的结果了。这个时候result始终等于i,j初始值互相相乘故而result的值一直是零

















    8

    慕妹6243...

    明白了,感谢!

    2019-03-26 09:08:45

    共 1 条回复 >

  • weixin_宝慕林6298932
    2019-03-25 23:22:06
    result=i*j;

    放在了循环外,没有参与下面的for循环中的运算,所以结果就一直都是初始化时的0*0

    慕妹6243...

    明白了,感谢!

    2019-03-26 09:09:03

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926299 学习 · 20799 问题

查看课程

相似问题