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

这个代码不知道错在哪里了

#include <stdio.h>

int main() 

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

    int i, j, result;

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

       { for(j=1;j<=i;j++)

              {result=i*j;

              }

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

      }        printf("\n");

    return 0;

}

请使用for循环,倒序打印9*9乘法表。打印结果如下图所示:

我实在找不出问题在哪里了

提问者:金城大帝 2017-01-16 15:44

个回答

  • 孙辽岸
    2017-01-16 16:54:28
    已采纳

    #include<stdio.h>
    int main()
    {//第一层//
        int i,j,result;
        for(i=9;i>0;j--)
        {//第二层,第一个for循环,父循环,由i控制排数//
            for(j=1;j<=i;j++)
            {//第三层,第二个for循环,子循环,由j控制列数//
                result=i*j;
                /*注意:你的问题出自这里,格式混乱,没有条理,
                本应该在这一层输出所有对应i值(在该层不变)与j值的积*/
                printf("%d*%d=%d",i,j,result);
                //该输出语句中的j值仍为符合判断条件的j//
            }//一次子循环结束,回到父循环当中//
        //此处同理//
        printf("\n");
        }//父循环结束,回到最外层//
        return 0;
    }//程序执行完毕//

    希望同学以后能注意一下格式,愿你爱上编程,爱上学习:)

  • 慕UI3611446
    2017-01-16 17:22:51

          printf("%d*%d=%d\t",i,j,result);        这一步的位置 不对  格式不太对

  • Ari_Li
    2017-01-16 16:19:09

    #include <stdio.h>

    int main()

    {

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

        int i,j,result;

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

        {

            for(j=1;j<=i;j++)

            {

                result=i*j;

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

            }

            printf("\n");

        }

        return 0;

    }

    你的printf应该放在子循环里