问答详情
源自:4-13 使用for循环打印9×9乘法表

提示,运行成功但是timeout,什么意思啊??另外,这样写对吗??

#include <stdio.h>
int main()
{
    // 定义相乘数字i,j以及结果result
    int i, j, result;
    for(i=9;i>=1;i--)
    {
        for(j=1;j>=1;j++)
        {
            printf("%d*%d=%d\t",i,j,result=i*j);
        }
        printf("\n");
    }
   
   
   
   
   
    return 0;
}

提问者:慕数据911255 2018-09-03 12:37

个回答

  • wangbuxiangsi
    2018-09-11 13:23:44

    timeout 就是陷入死循环了,你的子循环里j 的限制条件(也就是中间的代码2)和没有一样。

  • 丶双子
    2018-09-03 16:41:01

    你的第8行for(j=1;j>=1;j++)里面,我划线地方应该是j<=i,不然就会一点限制都没有的永远运行下去,我用vc试了一下是这样的https://img2.mukewang.com/5b8cf1880001fbf812230639.jpg

    我理解的这里就是两个for循环,一个外一个内,外面这个for(i=9;i>=1;i--)的循环只是来确定一个行数(因为在你没有换行的时候,输出是横着输出的),

    而里面的for(j=1;j<=i;j++),j被i限制了,不断减少,j能写的也就减少了,因为j++不断增加,而j<=i

    你的 j>=1就导致j没有限制的运行下去,就是无限列了,timeout应该是运行超时吧。写的有点乱,希望能理解