为什么我执行了第一个scanf后第二个还没输入就弹出来了
兄弟们这是为什么啊,我只执行了第一个scanf后第二个还没输入就弹出来了#include<stdio.h>
int main(void)
{
int a,s,d,f,g,h;
printf("Enter first date(mm/dd/yy):");
scanf("%1d/%1d/%1d",&a,&s,&d);
printf("Enter second date(mm/dd/yy):");
scanf("%1d/%1d/%1d",&f,&g,&h);
if(a>f){
printf("%d/%d/%d>%d/%d/%d",a,s,d,f,g,h);
}
if(a=f){
if(s>g)
printf("%d/%d/%d>%d/%d/%d",a,s,d,f,g,h);
else if(s<g){
printf("%d/%d/%d>%d/%d/%d",f,g,h,a,s,d); }
}
if(a<f){
printf("%d/%d/%d>%d/%d/%d",f,g,h,a,s,d);
}
if(a=f){
if(s=g)
if(d>h)
printf("%d/%d/%d>%d/%d/%d",a,s,d,f,g,h);
else if(d<h)
printf("%d/%d/%d>%d/%d/%d",f,g,h,a,s,d);
}
if(a=f)
if(s=g)
if(d=h)
printf("%d/%d/%d=%d/%d/%d",a,s,d,f,g,h);
return 0;
} 本帖最后由 风过无痕1989 于 2020-11-18 09:59 编辑
你的程序中加了很多的反斜杠,前面的程序还是有问题,修改后现在的正常
#include<stdio.h>
int main(void)
{
int a, s, d, f, g, h;
printf("Enter first date(mm/dd/yy):");
scanf("%d%d%d", &a, &s, &d);
printf("Enter second date(mm/dd/yy):");
scanf("%d%d%d", &f, &g, &h);
if (h > d) // 年份大的日期大
{
printf("%d/%d/%d > %d/%d/%d\n",f, g, h,a, s, d);
}
else if (h == d && g > s) // 年份相同的,月份大的日期大
{
printf("%d/%d/%d > %d/%d/%d\n",f, g, h,a, s, d);
}
else if (h == d && g == s && f > a) // 年份相同的,月份相同的,日期大的大
{
printf("%d/%d/%d > %d/%d/%d\n",f, g, h,a, s, d);
}
else if (h == d && g == s && f == a) // 年份相同的,月份相同的,日期相同的
{
printf("%d/%d/%d = %d/%d/%d\n", f, g, h, a, s, d);
}
else
{
printf("%d/%d/%d < %d/%d/%d\n", a, s, d, f, g, h);
}
return 0;
}
错误有三类:1、scanf内输入不应该控制位宽;2、判断相等应该是==,不是=,前者是比较运算符,后者是赋值运算符;3、你的输入是年/月/日还是月/日/年?
#include<stdio.h>
int main(void)
{
int a, s, d, f, g, h;
printf("Enter first date(mm/dd/yy):");
scanf("%d/%d/%d", &s, &d, &a);
printf("Enter second date(mm/dd/yy):");
scanf("%d/%d/%d", &g, &h, &f);
if (a > f) {
printf("%d/%d/%d > %d/%d/%d", a, s, d, f, g, h);
}
if (a == f) {
if (s > g)
printf("%d/%d/%d > %d/%d/%d", a, s, d, f, g, h);
else if (s < g) {
printf("%d/%d/%d > %d/%d/%d", f, g, h, a, s, d);
}
}
if (a < f) {
printf("%d/%d/%d > %d/%d/%d", f, g, h, a, s, d);
}
if (a == f) {
if (s == g)
if (d > h)
printf("%d/%d/%d > %d/%d/%d", a, s, d, f, g, h);
else if (d < h)
printf("%d/%d/%d > %d/%d/%d", f, g, h, a, s, d);
}
if (a == f)
if (s == g)
if (d == h)
printf("%d/%d/%d = %d/%d/%d", a, s, d, f, g, h);
return 0;
} 风过无痕1989 发表于 2020-11-18 09:16
你的程序中加了很多的反斜杠,前面的程序还是有问题,修改后现在的正常
谢谢 sunrise085 发表于 2020-11-18 09:36
错误有三类:1、scanf内输入不应该控制位宽;2、判断相等应该是==,不是=,前者是比较运算符,后者是赋值运 ...
谢谢
页:
[1]