【问题标题】:numbers behind % in printf and scanfprintf 和 scanf 中 % 后面的数字
【发布时间】:2019-11-20 11:02:53
【问题描述】:

我偶然发现了这个,我不知道它到底是做什么的

int i; 
for ( i = 1; i <= 20; i++ ) {
  printf( "%10d", (1+rand()%6) );

  if ( i % 5 == 0 ) {
    printf( "\n" );
  } 
} 

以上是掷骰子 20 次的程序的一部分。

我不明白的是这一行:

printf( "%10d", (1+rand()%6) );

我的问题是“%10d”

这是一个视觉的东西,因为输出的外观顺序会随之改变。

我知道在浮点值中它显示小数点,但在整数中作为 int 呢,还有谁能告诉我这之间的区别:

prinf("%.2f",value);

还有这个:

prinf("%6.2f",value);

他们都打印 1000.30,那么 6 是什么意思?

【问题讨论】:

  • 是的,如果给出 4 位数字,则 %10d 剩下的 6 个位置用 sapces 填充
  • 我读过 deitel 的书,但它只解释了浮点数
  • 所以 10 表示输出有 10 个空格?
  • 10 表示打印您的号码的总大小,如果号码少于 10 位,则剩余填充空格
  • 基本上%d 只打印数字的有效数字(“1234”),%10d 打印带有 10 位小数的数字,使用空格作为非有效数字(“1234”)和%010d打印带有 10 位小数的数字,使用 0 表示非有效数字(“0000001234”)。

标签: c printf scanf


【解决方案1】:

"%10d" 表示根据需要在左侧填充空格,因此十进制输出至少为 10 个字符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2023-03-09
    • 2017-01-07
    • 2017-11-26
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多