黑马程序员技术交流社区

标题: 打印输出九九减法表 [打印本页]

作者: 杨庆庆    时间: 2015-6-21 21:35
标题: 打印输出九九减法表
//打印输出九九减法表

#include <stdio.h>

int main(int argc, const char * argv[]) {
    //定义变量,要求有两个变量
    int i,j;
    //for循环嵌套使用
    for (i =1;i <=10;i++){
        for (j=1;j<=i;j++){
            if (i <=9){
            printf(" %d-%d=%d ",i ,j,i-j);
            }else {
                printf("%2d-%d=%d ",i,j,i-j);
            }
        }
        printf("\n");
    }
    return 0;
}



作者: 守望黎明    时间: 2015-6-21 21:37
好腻害好腻害。。
作者: 小龙女的萝卜    时间: 2015-6-21 21:48
大神,学习了;
作者: aofex    时间: 2015-6-21 22:20
学习 学习了
作者: kalon    时间: 2015-6-22 09:27
else后面为什么这么写啊……
作者: aludiba    时间: 2015-6-22 10:42
kalon 发表于 2015-6-22 09:27
else后面为什么这么写啊……

同问 楼主大神解答一下啊
作者: 弹剑    时间: 2015-6-23 00:40
第一个for循环中为何是i<=10;
else后面的%2d的意思是什么?
作者: zhanghao2744491    时间: 2015-6-23 12:04
好难。感觉不会了啊
作者: 沙睿    时间: 2015-6-23 22:01
把10 用变量代替。再用scanf输入, 到时候想打印几几乘法表都行了
作者: gmx1120    时间: 2015-6-23 22:07
还是很牛的
作者: 杨庆庆    时间: 2015-6-23 22:14
aludiba 发表于 2015-6-22 10:42
同问 楼主大神解答一下啊

else后面是判断i  =10;的那种情况,亦可以写成else if (i== 10)也可以的.....明白.....
作者: 杨庆庆    时间: 2015-6-23 22:22
弹剑 发表于 2015-6-23 00:40
第一个for循环中为何是i

因为  减法表的行数  是有十行的,,,,,,%2d是控制他的字符的个数,也叫做域宽,主要是让他输出的字符占位一样,好看一些......

Snip20150623_1.png (115.59 KB, 下载次数: 104)

Snip20150623_1.png

作者: 杨庆庆    时间: 2015-6-23 22:25
沙睿 发表于 2015-6-23 22:01
把10 用变量代替。再用scanf输入, 到时候想打印几几乘法表都行了

牛逼....赞一下

作者: 杨庆庆    时间: 2015-6-23 22:29
弹剑 发表于 2015-6-23 00:40
第一个for循环中为何是i

i是控制行数的,减法表是有十行的,,,,,,%2d  是控制输出的数值的占位的长度,,,,也叫域宽,,,,,是方便对齐美观的效果.....

Snip20150623_1.png (115.59 KB, 下载次数: 102)

Snip20150623_1.png

作者: aludiba    时间: 2015-6-24 18:28
杨庆庆 发表于 2015-6-23 22:22
因为  减法表的行数  是有十行的,,,,,,%2d是控制他的字符的个数,也叫做域宽,主要是让他输出的字符占位一 ...

牛逼~!
作者: solon    时间: 2015-6-24 19:40
习惯符号用char申明,哈哈
作者: 丁铭检    时间: 2015-6-24 20:11
加油。。。
作者: XiaoBaoMi    时间: 2015-6-24 21:26
楼主的方法不错 学习了
作者: fanxing    时间: 2015-6-25 18:53
杨庆庆 发表于 2015-6-23 22:22
因为  减法表的行数  是有十行的,,,,,,%2d是控制他的字符的个数,也叫做域宽,主要是让他输出的字符占位一 ...

楼主的代码好像还是没对齐,我又小小的改动了一下这回好像都对齐了
#include <stdio.h>

int main(int argc, const char * argv[]) {
    //定义变量,要求有两个变量
    int i,j;
    //for循环嵌套使用
    for (i =1;i <=10;i++){
        for (j=1;j<=i;j++){
            if (i <=9){
            printf("  %d-%d=%2d ",i ,j,i-j);
            }else {
                printf("%3d-%d=%d ",i,j,i-j);
            }
        }
        printf("\n");
    }
    return 0;
}
作者: fanxing    时间: 2015-6-25 18:56
杨庆庆 发表于 2015-6-23 22:22
因为  减法表的行数  是有十行的,,,,,,%2d是控制他的字符的个数,也叫做域宽,主要是让他输出的字符占位一 ...

楼主的代码好像还是没对齐,我又小小的改动了一下这回好像都对齐了
#include <stdio.h>

int main(int argc, const char * argv[]) {
    //定义变量,要求有两个变量
    int i,j;
    //for循环嵌套使用
    for (i =1;i <=10;i++){
        for (j=1;j<=i;j++){
            if (i <=9){
            printf("  %d-%d=%2d ",i ,j,i-j);
            }else {
                printf("%3d-%d=%d ",i,j,i-j);
            }
        }
        printf("\n");
    }
    return 0;
}
作者: 皇道金丹    时间: 2015-6-25 18:57
没听过,我去试试看
作者: 杨庆庆    时间: 2015-6-25 20:20
牛逼,赞一个,挺好的






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