黑马程序员技术交流社区

标题: 求大神改进:for循环制作阶梯式九九乘法表 [打印本页]

作者: 白月光    时间: 2014-5-20 23:55
标题: 求大神改进:for循环制作阶梯式九九乘法表
本帖最后由 白月光 于 2014-5-21 09:50 编辑
  1. /*
  2. 制作阶梯式的九九乘法表
  3. */

  4. #include <stdio.h>
  5. int main()
  6. {
  7.     for(int i = 1 ; i <=9 ;i++)//控制行数
  8.     {
  9.         //printf("%d×%d=\n",i);
  10.         for(int j = 1; j <= i ;j++)//控制每行的运算式个数
  11.         {
  12.             int product = 0;//定义变量存放乘积
  13.             product = i * j;
  14.             printf("%d×%d=%d    ",i,j,product);
  15.         
  16.         }
  17.         printf("\n");
  18.      }
  19.     return 0;
  20. }
复制代码


九九乘法表.jpg (122.12 KB, 下载次数: 52)

九九乘法表.jpg

作者: 为梦想挺身而出    时间: 2014-5-21 00:08
  1. /*
  2. 制作阶梯式的九九乘法表1
  3. */


  4. #include <stdio.h>

  5. int main()
  6. {
  7.    
  8.     for (int i = 0; i<9; i++)
  9.     {
  10.         
  11.         for(int j = 10,a=0; j >9-i; j--)
  12.         {
  13.             //每次运行加1,用来计算被乘的数
  14.             a++;
  15.             int b = 10-(9-i);
  16.             
  17.             printf("%dx%d=%d  ", a, b, a*b );
  18.         }
  19.         
  20.         printf("\n");//每次循环后换行
  21.     }
  22.    
  23.    
  24.     return 0;
  25. }
复制代码

  1. //第二种

  2. #include <stdio.h>


  3. int main()
  4. {
  5.     //定义一个变量来控制行数
  6.     int a = 9;
  7.    
  8.     for(int i = 0;i <a; i++)//控制有多少行
  9.     {
  10.         //定义一个变量并且初始化,用来给第二个乘数做递增
  11.         int c = 0;
  12.         
  13.         for(int j = 10; j>a-i ; j--,printf(" "))//每行递减,递减后空格
  14.         {
  15.             //这里a的值和i的值都是不变的,计算出b的值,并且循环不变
  16.             int b = 10-(a-i);
  17.             //每运行一次加1
  18.             c++;
  19.             
  20.             //定义一个变量
  21.             int d = b * c;
  22.             
  23.             
  24.             printf("%dx%d=%d", b,c,d);
  25.         }
  26.         printf("\n");
  27.     }
  28.    
  29.    
  30.     return 0;
  31. }
复制代码


//两款,总有一款适合你 嘿嘿 当做参考参考吧
作者: 欧翔    时间: 2014-5-21 00:11
这样行么,用IF判断多输出一个空格
  1. /*
  2. 制作阶梯式的九九乘法表
  3. */

  4. #include <stdio.h>
  5. int main()
  6. {
  7.     for(int i = 1 ; i <=9 ;i++)//控制行数
  8.     {
  9.         //printf("%d×%d=\n",i);
  10.         for(int j = 1; j <= i ;j++)//控制每行的运算式个数
  11.         {
  12.             int product = 0;//定义变量存放乘积
  13.             product = i * j;
  14.             if (product<10) {
  15.                 printf("%d×%d=%d    ",i,j,product);
  16.             }
  17.             else{
  18.             printf("%d×%d=%d   ",i,j,product);
  19.             }
  20.         }
  21.         printf("\n");
  22.     }
  23.     return 0;
  24. }
复制代码

作者: 为梦想挺身而出    时间: 2014-5-21 00:23
// 不好意思 没看清你的问题 先这样吧  有好想法再交流
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int product = 0; // 定义变量存放乘积,这里定义在外面只要定义一次,性能高点
  5.     for(int i = 1 ; i <=9 ;i++)//控制行数
  6.     {
  7.         //printf("%d×%d=\n",i);
  8.         for(int j = 1; j <= i ;j++)//控制每行的运算式个数
  9.         {
  10.             
  11.             product = i * j;
  12.             printf("%d×%d=%d  ",j,i,product); // j i的位置变了一下
  13.             
  14.             // 这里暂时加个条件吧
  15.             if (product<=9)
  16.             {
  17.                 printf(" ");
  18.             }
  19.             
  20.         }
  21.         printf("\n");
  22.     }
  23.     return 0;
  24. }
复制代码

作者: 从┧靇┟开始    时间: 2014-5-21 00:59
15.            printf("%d×%d=%2d    ",i,j,product);  // 第15行改成这样 试试
作者: 白月光    时间: 2014-5-21 09:26
从┧靇┟开始 发表于 2014-5-21 00:59
15.            printf("%d×%d=%2d    ",i,j,product);  // 第15行改成这样 试试

可以的,非常感谢!
作者: 从┧靇┟开始    时间: 2014-5-21 09:29
白月光 发表于 2014-5-21 09:26
可以的,非常感谢!

我也刚学 一起努力 哈:handshake
作者: 白月光    时间: 2014-5-21 09:47
欧翔 发表于 2014-5-21 00:11
这样行么,用IF判断多输出一个空格

也可以,非常感谢!
作者: 白月光    时间: 2014-5-21 09:49
为梦想挺身而出 发表于 2014-5-21 00:23
// 不好意思 没看清你的问题 先这样吧  有好想法再交流

谢谢,没想到会有这么多方法,有好想法一定要教我哈
作者: 奇迹    时间: 2014-5-21 23:12
好牛B,膜拜
作者: 一只小菜鸟    时间: 2014-5-22 17:43
printf("%d×%d=%d \t",i,j,product);  可以用制表符
作者: 白月光    时间: 2014-5-22 17:55
一只小菜鸟 发表于 2014-5-22 17:43
printf("%d×%d=%d \t",i,j,product);  可以用制表符

谢谢,又学到了一招
作者: a1130003724    时间: 2014-5-22 18:26
    又学到了好多东西  
作者: 白月光    时间: 2014-5-22 19:50
a1130003724 发表于 2014-5-22 18:26
又学到了好多东西

经常交流,相互学习,一起努力哈
作者: 詹绪长    时间: 2014-6-1 18:56
我是来看热闹的,不小心学了点
作者: 69042011    时间: 2014-6-2 18:34
\t     相当于tab  和java中的制表符一样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2