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

求大神指点 为什么输出来的不完整

#include <stdio.h>

int main() 

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

    int i, j, result;

    /*

     * 使用for循环解决本题相对简单哦~

     * 小编偷偷的将源码放在任务“不会了怎么办”中了哦~

     * 小编希望童鞋们独立完成哦~

     */

    for(i=9,j=1;j<=i;i--)

    {

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

        {

            result=i*j;

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

        } 

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

    }

 

    return 0;

}


正在回答

3 回答

你的代码看上去逻辑十分的混乱,i代表*号前边的数字,j代表*号后边的数字,result代表他们相乘的结果,一行一行的看,先分析第一行,你可以看到第一行i=9不变,第二行i=8,i的最后一行等于1,每一行的j逐渐增大,j的步值为1,且j的值最大不超过i,所以j<=i;这样可以使用一个外部循环描述i的变化,for(i=9;i>=0;i--),再嵌套一个走循环,实现J的逻辑for(j=1;j<=i;j++),外部循环执行一次,子循环需要全部执行完才能跳出循环再执行第二次的外部循环,依次类推,即可实现这个效果的逻辑,代码如下:

#include <stdio.h>
int main() 
{ 
    // 定义相乘数字i,j以及结果result
    int i, j, result;
    /*
     * 使用for循环解决本题相对简单哦~
     * 小编偷偷的将源码放在任务“不会了怎么办”中了哦~
     * 小编希望童鞋们独立完成哦~
     */
    for(i=9;i>=0;i--)
    {
        for(j=1;j<=i;j++)
        {
            result=i*j;
            printf("%d*%d=%d\t",i,j,result);
        }
        printf("\n");
    }
    
    return 0;
}

如果帮到你,请采纳,谢谢!!!

0 回复 有任何疑惑可以回复我~

你代码中的for循环i和j弄错了

0 回复 有任何疑惑可以回复我~
#1

南笙依言 提问者

i,j分别是什么
2016-09-07 回复 有任何疑惑可以回复我~
#2

JustWannaHugU 回复 南笙依言 提问者

i代表的是行数,j表示列数 printf(" ");输出的是空格,哪不明白继续问,满意就采纳下吧~^_^
2016-09-07 回复 有任何疑惑可以回复我~

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

     {

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

         {

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

             printf("  ");

         }

     }


0 回复 有任何疑惑可以回复我~
#1

南笙依言 提问者

printf(" "); 这是什么?空格?
2016-09-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924441    人
  • 解答问题       20757    个

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

进入课程

求大神指点 为什么输出来的不完整

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信