pra*_*ani 0 c printf addition format-specifiers
我正在尝试添加c代码,但我的程序没有执行,不幸的是,代码块关闭了.错误是什么?
void main()
{
float a,b;
printf("%30sAddition Of Numbers\n");
printf("\nEnter Number 1: ");
scanf("%f",&a);
printf("\nEnter Number 2: ");
scanf("%f",&b);
printf("\nThe addition of %0.3f and %0.3f is %0.3f",a,b,(a+b));
}
Run Code Online (Sandbox Code Playgroud)
我想直接在printf语句中使用float输入添加结果,但我没有让它工作.
我也尝试将结果放在变量a中,但它也没有用.
void main()
{
float a,b;
printf("%30sAddition Of Numbers\n");
printf("\nEnter Number 1: ");
scanf("%f",&a);
printf("\nEnter Number 2: ");
scanf("%f",&b);
a=a+b;
printf("\nThe addition of %0.3f and %0.3f is %0.3f",a,b,a);
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
问题出现在以下声明中
printf("%30sAddition Of Numbers\n");
Run Code Online (Sandbox Code Playgroud)
这里,提供给printf()conatins %30s(或者,%s通常)的格式字符串是格式说明符(转换说明符),并且您没有提供任何参数.它调用未定义的行为.
引用C11标准,第7.21.6.1章
[...]如果格式的参数不足,则行为未定义.[...]
您还可以查看手册页以了解有关格式说明符的更多信息.
编辑:
如下面的注释中所述,如果您希望在输出之前显示一些空格,请更改
printf("\t\tAddition Of Numbers\n");
Run Code Online (Sandbox Code Playgroud)
那说,
void main()应该int main (void)至少符合标准.scanf()以确保扫描成功.| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |