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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨庆庆 中级黑马   /  2015-6-21 21:35  /  2884 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//打印输出九九减法表

#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;
}


21 个回复

倒序浏览
好腻害好腻害。。
回复 使用道具 举报
大神,学习了;
回复 使用道具 举报
学习 学习了
回复 使用道具 举报
kalon 来自手机 中级黑马 2015-6-22 09:27:01
报纸
else后面为什么这么写啊……
回复 使用道具 举报
kalon 发表于 2015-6-22 09:27
else后面为什么这么写啊……

同问 楼主大神解答一下啊
回复 使用道具 举报
弹剑 中级黑马 2015-6-23 00:40:19
7#
第一个for循环中为何是i<=10;
else后面的%2d的意思是什么?
回复 使用道具 举报
好难。感觉不会了啊
回复 使用道具 举报
沙睿 中级黑马 2015-6-23 22:01:25
9#
把10 用变量代替。再用scanf输入, 到时候想打印几几乘法表都行了
回复 使用道具 举报
还是很牛的
回复 使用道具 举报
aludiba 发表于 2015-6-22 10:42
同问 楼主大神解答一下啊

else后面是判断i  =10;的那种情况,亦可以写成else if (i== 10)也可以的.....明白.....
回复 使用道具 举报
弹剑 发表于 2015-6-23 00:40
第一个for循环中为何是i

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

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

Snip20150623_1.png
回复 使用道具 举报
沙睿 发表于 2015-6-23 22:01
把10 用变量代替。再用scanf输入, 到时候想打印几几乘法表都行了

牛逼....赞一下
回复 使用道具 举报
弹剑 发表于 2015-6-23 00:40
第一个for循环中为何是i

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

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

Snip20150623_1.png
回复 使用道具 举报
杨庆庆 发表于 2015-6-23 22:22
因为  减法表的行数  是有十行的,,,,,,%2d是控制他的字符的个数,也叫做域宽,主要是让他输出的字符占位一 ...

牛逼~!
回复 使用道具 举报
solon 中级黑马 2015-6-24 19:40:23
16#
习惯符号用char申明,哈哈
回复 使用道具 举报
加油。。。
回复 使用道具 举报
楼主的方法不错 学习了
回复 使用道具 举报
杨庆庆 发表于 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-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;
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马