517620540 发表于 2021-3-25 16:39:06

作业求助!

#include<stdio.h>

int main()
{
        printf("打印五个字符:%c %c %c %c %c\n ",70, 105, 115, 104, 67);
        printf("前面用 填充:%10d\n",2015);
        printf("前面用0填充:%010d\n",2015);
        printf("右对齐,保留2位: %10.2f\n ",3.1416);
        printf("左对齐,保留3位: %-10.3f\n",3.1416);
        printf("右对齐,指数形式: %10e\n",520000.0);
        printf("左对齐,指数形式: %-10E\n",520000.0);
        return 0;
}

请教各位大神,我没有理解 这个 %1 是个什么意思 为什么 %10d\n 就是空格%1 就是右对齐。。。 我看了发的函数指令。。。没明白。。。。 想问问
在此感谢!

Mr.鹿 发表于 2021-3-25 16:52:42

在打印数字宽度前面加一个“-”。数字宽度为10,如果要打印的位数小于10,就在后面补足空格;如果要打印的位数大于10,则打印所有的数字,不会中断掉。
同理,在%和d之间加上数字宽度,就可以右对齐。数字宽度为10,如果要打印的位数小于10,左边补足空格;如果要打印的位数大于10,则打印所有的数字,不会有空格

Mr.鹿 发表于 2021-3-25 17:06:31

本帖最后由 Mr.鹿 于 2021-3-25 17:08 编辑

Mr.鹿 发表于 2021-3-25 16:52
在打印数字宽度前面加一个“-”。数字宽度为10,如果要打印的位数小于10,就在后面补足空格;如果要打印的 ...

本身对齐这个是在有需要的时候才需要去计较对齐,%数字d\n,数字限定了你int 输出的位数,在你输入9位数时候,%10d\n就是右对齐,因为补空格在数字左边了。同样的如果你输入9位数,%-10d\n就是左对齐,因为在右边补了空格。
%数字d\n,你输入的数字大于这个数它就没有啥意义,不会补空格的,会直接输出。
建议李多打几遍输入试试或者经常百度,然后自己再钻研一下

517620540 发表于 2021-3-26 15:59:43

Mr.鹿 发表于 2021-3-25 17:06
本身对齐这个是在有需要的时候才需要去计较对齐,%数字d\n,数字限定了你int 输出的位数,在你输入9位数 ...

感谢!
页: [1]
查看完整版本: 作业求助!