为啥输出的时候少了一个0?
#include<stdio.h>int main(void)
{
char ch;
int x,y;
printf("Enter a 12-hour time:");
scanf("%2d:%2d ",&x,&y);
while((ch=getchar() )!='M'){
if(ch=='P'){
x+=12;
printf("%d:%d PM",x,y);
}else if(ch == 'A'){
printf("%d:%d AM",x,y);
}}
return 0;
}
求助,如图,当输入00的时候输出只有一个零?这是为什么?谢谢大佬们 #include<stdio.h>
int main(void)
{
char ch;
int x,y;
printf("Enter a 12-hour time:");
scanf("%2d:%2d ",&x,&y);
while((ch=getchar() )!='M')
{
if(ch=='P')
{
x+=12;
printf("%d:%02d PM",x,y); //%02d
}
else if(ch == 'A')
printf("%d:%02d AM",x,y);
}
return 0;
} #include<stdio.h>
int main(void)
{
char ch;
int x, y;
printf("Enter a 12-hour time:");
scanf("%2d:%2d ", &x, &y);
while ((ch = getchar()) != 'M') {
if (ch == 'P') {
x += 12;
printf("%d:%02d PM", x, y); //这里改成%02d限制两位,不够的前面补0
}
else if (ch == 'A') {
printf("%d:%02d AM", x, y);//一样
}
}
return 0;
}
测试结果:Enter a 12-hour time:12:00 AM
12:00 AM
本帖最后由 昨非 于 2020-12-5 15:26 编辑
因为值为0的整型在用%d输出时只显示一位
格式控制串语法:%02d :意思时输出两位整型,不足的在前面用0来补齐
昨非 发表于 2020-12-5 15:24
因为值为0的整型在用%d输出时只显示一位
格式控制串语法:%02d :意思时输出两位整型,不足的在前面用0 ...
谢谢 昨非 发表于 2020-12-5 15:23
测试结果:
谢谢 jitianmoshen 发表于 2020-12-5 15:23
谢谢
页:
[1]