黑马程序员技术交流社区

标题: 原来九九乘法表可以这样写 [打印本页]

作者: Kuaile天使    时间: 2015-2-10 15:20
标题: 原来九九乘法表可以这样写
本帖最后由 Kuaile天使 于 2015-2-11 00:43 编辑
  1. #include <stdio.h>

  2. void _for()
  3. {
  4.         //for循环  初始化变量 i 和 j 的值。当j 大于 9时循环结束
  5.         for(int i = 1,j = i;j <= 9;i++)
  6.         {
  7.                 //打印每个算式
  8.                 printf("%d * %d = %-3d",i,j,i * j);

  9.                 //当i 等于 j时,j 加一 i 置为零重新开始计算 一行结束后换行
  10.                 if(i == j)
  11.                 {
  12.                         j++;
  13.                         i = 0;
  14.                         printf("\n");
  15.                 }
  16.         }
  17. }

  18. void _for_1()
  19. {
  20.         // 初始化 变量 i 和 j 的值
  21.         int i = 1,j = i;

  22.         //for循环变种,省略初始化 条件 步长
  23.         for(;;)
  24.         {
  25.                 //打印算式
  26.                 printf("%d * %d = %-3d",i,j,i * j);

  27.                 //判断i 是否等于 j
  28.                 if(i == j)
  29.                 {
  30.                         //换行
  31.                         printf("\n");

  32.                         //如果j 等于 9 循环结束。
  33.                         if(j++ == 9)
  34.                         {
  35.                                 //跳出当前循环
  36.                                 break;
  37.                         }

  38.                         //将 i 置为零
  39.                         i = 0;
  40.                 }

  41.                 //i 加一递增
  42.                 i++;
  43.         }
  44. }

  45. void _for_2()
  46. {
  47.         int i = 1,j = i;
  48.         for(;;)
  49.         {
  50.                 printf("%d * %d = %-3d",i,j,i * j);
  51.                 if(i == j)
  52.                 {
  53.                         printf("\n");
  54.                         if(j++ == 9)
  55.                         {
  56.                                 break;
  57.                         }

  58.                         //注意这里是一
  59.                         i = 1;

  60.                         //结束本次循环进行下一次循环,即后面的i++不再执行。
  61.                         continue;
  62.                 }
  63.                 i++;
  64.         }
  65. }

  66. void _while()
  67. {
  68.         int i = 1,j = i;
  69.         while(j <= 9)
  70.         {
  71.                 printf("%d * %d = %-3d",i,j,i * j);
  72.                 if(i == j)
  73.                 {
  74.                         j++;
  75.                         i = 0;
  76.                         printf("\n");
  77.                 }
  78.                 i++;
  79.         }
  80. }

  81. void _while_1()
  82. {
  83.         int i = 1,j = i;
  84.         while(1)
  85.         {
  86.                 printf("%d * %d = %-3d",i,j,i * j);
  87.                 if(i == j)
  88.                 {
  89.                         printf("\n");
  90.                         if(j++ == 9)
  91.                         {
  92.                                 break;
  93.                         }
  94.                         i = 0;
  95.                 }
  96.                 i++;
  97.         }
  98. }

  99. void _do_while()
  100. {
  101.         int i = 1,j = i;
  102.         do
  103.         {
  104.                 printf("%d * %d = %-3d",i,j,i * j);
  105.                 if(i == j)
  106.                 {
  107.                         j++;
  108.                         i = 0;
  109.                         printf("\n");
  110.                 }
  111.                 i++;
  112.         }
  113.         while(j <= 9);
  114. }

  115. int main()
  116. {
  117.         printf("九九乘法表\n");
  118.         _for();
  119.         _for_1();
  120.         _for_2();
  121.         _while();
  122.         _while_1();
  123.         _do_while();
  124. }
复制代码



作者: MacxChina    时间: 2015-2-10 16:16
太麻烦了
作者: Kuaile天使    时间: 2015-2-11 00:46
MacxChina 发表于 2015-2-10 16:16
太麻烦了

那种没技术含量的九九乘法表是简单,哈哈。
作者: MacxChina    时间: 2015-2-11 12:16
Kuaile天使 发表于 2015-2-11 00:46
那种没技术含量的九九乘法表是简单,哈哈。

善于分析的精神值得学习:handshake
作者: a395027720    时间: 2015-2-11 13:06
我也就会简单的写法
作者: sun397721060    时间: 2015-2-11 13:44
呵呵 兄弟这样分析的写法是对的 俗话说有利必有弊  这样的程序运行起来会给内存造成压力
作者: Kuaile天使    时间: 2015-2-11 22:22
sun397721060 发表于 2015-2-11 13:44
呵呵 兄弟这样分析的写法是对的 俗话说有利必有弊  这样的程序运行起来会给内存造成压力  ...

愿听分析,怎么就给内存造成压了,嘿嘿。
作者: 丶有果灬    时间: 2015-2-11 22:24
能善于分析总结是好事  但是开发中能简单还是简单化  省内存消耗
作者: Kuaile天使    时间: 2015-2-11 22:31
a395027720 发表于 2015-2-11 13:06
我也就会简单的写法

学习是一点一点积累的,今天,你或许会满足两个循环写的九九乘法表,也许将来的某一天,你会发现你的九九乘法表的代码,可以在优化一下,做的更好,嘿嘿。
作者: 恋梦    时间: 2015-2-12 07:45
省简取索,本来两三行可以搞定的代码,搞的这也太繁锁了。
作者: Kuaile天使    时间: 2015-2-13 00:33
恋梦 发表于 2015-2-12 07:45
省简取索,本来两三行可以搞定的代码,搞的这也太繁锁了。

嘿嘿,不晓得。愿闻其样。
作者: 恋梦    时间: 2015-2-13 01:01
Kuaile天使 发表于 2015-2-13 00:33
嘿嘿,不晓得。愿闻其样。

for (int i = 1; i<=9; i++) {
        for (int j = 1; j<=i; j++) {
            printf("%d*%d=%d ", j, i, i*j);
        }
        printf("\n");
    }
作者: clairetoto2012    时间: 2015-2-13 06:59
刚学写到九九乘法表,谢谢!
作者: Kuaile天使    时间: 2015-2-13 22:34
恋梦 发表于 2015-2-13 01:01
for (int i = 1; i

你把你里面的循坏拆开,我感觉跟我的差不多。或许,还没我的简单呢。
作者: Kuaile天使    时间: 2015-2-13 22:37
clairetoto2012 发表于 2015-2-13 06:59
刚学写到九九乘法表,谢谢!

你可以拿着这个乘法表,好好地炫一下了,哈哈。一般初学者,是不会这样写乘法表的。
作者: dimost    时间: 2015-2-14 14:36
楼主好兴致,加油,点个赞




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