A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大龄产妇 中级黑马   /  2014-4-27 14:25  /  2327 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 大龄产妇 于 2014-4-28 16:04 编辑

//输出图形 9*9  乘法口诀
//分析
#include <stdio.h>
int main()
{
for(int i=0;i<=9;i++){    //控制行数
    for(int a=0,b=0,j=0;j<9-i;j++){
        a++;
        b++;
        printf("%d*%d=%d ",a,b,a*b);//输出打印结果
        }
    printf("\n");
    }
    return 0;
}
求:在我这个嵌套结构下改进,说明补充部分以及原因。(问题一)
       其他嵌套方法解这个问题,尽量精简代码,最简单的办法。(问题二)


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

12 个回复

倒序浏览
{
    //输出图形 9*9  乘法口诀
    //分析
    for(int i=0;i<=9;i++){
        for(int a=0,b=0,j=0;j<i;j++){
            a++;
            b++;
            printf("%d*%d=%d ",i,b,i*b);
            
        }
        printf("\n");
    }
    return 0;
}
//终于弄出来了,之前竖排的递增数我一直没想明白怎么搞定。经几位综合起来,这个是我最终答案。
//问题又来了,谁能告诉我怎么把9*9乘法口诀三角型的方向颠倒?视频上讲过***的  但一应用就乱了。
回复 使用道具 举报
#include <stdio.h>
int main()
{
        int i,j,a,b;
        for( i=0;i<=9;i++)
        {    //控制行数
           for(a=0,b=0,j=0;j<i;j++)//只要修改下这里就OK了
           {
        a++;
        b++;
        printf("%d*%d=%d ",a,b,a*b);//输出打印结果
        }
           printf("\n");
    }
    return 0;
}

点评

这个输出结果是错的  发表于 2014-4-28 09:38
回复 使用道具 举报
#include <stdio.h>
        int main()
{
for ( int i=1 ; i<10 ; i++ )//行
{
        for ( int j=1 ; j<10 ; j++ )//列
{
        Int sum = i * j;
        printf(“%d*%d=$d  ”,i,j,sum);
}
printf(“\n”);
}
                return 0 ;
}
回复 使用道具 举报
胡铭 发表于 2014-4-27 14:33
#include
int main()
{

不对,那不是乘法口诀,打印出来不对。
每一列行所乘的数是有变化的,我不知道怎么改这个递增的数值。
回复 使用道具 举报
兰闻天 发表于 2014-4-27 14:37
#include
        int main()
{

代码报错,检验不行。能直说原理么?
回复 使用道具 举报
大龄产妇 发表于 2014-4-27 14:40
不对,那不是乘法口诀,打印出来不对。
每一列行所乘的数是有变化的,我不知道怎么改这个递增的数值。 ...

不好意思没看清,现在再试试
#include <stdio.h>
int main()
{
        int a,b;
        for( a=1;a<=9;a++)
        {    //控制行数
           for(b=1;b<=9&&b<=a;b++)
           {
        printf("%d*%d=%d ",b,a,a*b);//输出打印结果
        }
           printf("\n");
    }
    return 0;
}
回复 使用道具 举报
本帖最后由 兰闻天 于 2014-4-27 23:02 编辑
大龄产妇 发表于 2014-4-27 14:46
代码报错,检验不行。能直说原理么?


#include <stdio.h>
        int main()
{
for ( int i=1 ; i<10 ; i++ )
{ //行,第一行都是1*,第二行都是2*,第三行都是3*
        for ( int j=1 ; j<10 ; j++ )
{//列,第一列都是*1,第二列都是*2,第三列都是*3
        Int sum = i * j; //乘法的结果
        printf(“%d*%d=%d  ”,i,j,sum);//打印乘法表
}
printf(“\n”);
}
                return 0 ;
}
你再试试把,可能是注释存在的问题报错,我这没问题的
回复 使用道具 举报
兰闻天 发表于 2014-4-27 15:10
#include
        int main()
{

我不明白那个$符号是干什么用的,这能输出么?你在什么系统下输入的?怎么跟我的不一样啊?
回复 使用道具 举报
本帖最后由 兰闻天 于 2014-4-27 23:02 编辑
大龄产妇 发表于 2014-4-27 19:35
我不明白那个$符号是干什么用的,这能输出么?你在什么系统下输入的?怎么跟我的不一样啊?
...

打错了,习惯没改过来,那个是错误的 ,把那个改成%
回复 使用道具 举报
兰闻天 发表于 2014-4-27 22:58
打错了,习惯没改过来,那个是错误的 ,把那个改成%

{:2_41:} {:2_34:}
回复 使用道具 举报
本帖最后由 EchoWill 于 2014-4-27 23:52 编辑
  1. #include <stdio.h>
  2. #define ROWS 9  // 预定义行数

  3. int main(int argc, const char * argv[])
  4. {
  5.     // 循环控制行数
  6.     for (int i = 1; i <= ROWS; i++) {
  7.         // 循环控制每行的表达式,第几行就有几个shizi
  8.         for (int j = 1; j <= i; j++) {
  9.             // 第j个式子
  10.             printf("%d * %d = %d\t",j,i,(j*i));
  11.         }
  12.         printf("\n");
  13.     }
  14.    
  15.     return 0;
  16. }
复制代码


希望对你有帮助。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马