龘龗 2020-11-05 17:55 采纳率: 0%
浏览 65

scanf输入后跟printf出来的怎么不一样啊


#include "stdafx.h"


int main(void)
{int a,b,c,yyyy,m,d;
printf("请按“yyyy m d”格式输入日期\n");
scanf("%d %d %d",&yyyy,&m,&d);
if (yyyy>=1&&yyyy<=9999)
    a=1;
else 
	a=0;
if (m>=1&&m<=12)
	b=1;
else
	b=0;
    if (m!=2)
	 { if (m==1||m==3||m==5||m==7||m==8||m==10||m==12)
		 { if (d<1||d>31)
			  c=0;
		  else
			  c=1;}
	  else
		  if (d<1||d>30)
			  c=0;
		  else
			  c=1;}
	else
	  {if (yyyy%4==0&&yyyy%100!=0)
		  if(d<1||d>29)
			  c=0;
		  else
		  c=1;
	  else
	   if(1<=d<=28)
		   c=1;
	   else
		   c=0;}
if (a=1&&b==1&&c==1)
	printf("输入的日期是: %d年%d月%d日\n",&yyyy,&m,&d);
if(a==0)
	printf("年份错误\n");
if(b==0)
	printf("月份错误\n");
if(c==0)
	printf("日期错误\n");
return 0;
}

如图  最终会输出一大段数字并且if语句判断失效

  • 写回答

1条回答 默认 最新

  • 八千分之一 2020-11-05 19:05
    关注

    你这个代码写的很乱,如果说要判断输入日期的时候建议直接把0和1直接换成printf(“”),这样子就不会出错,本来想帮你看看的,但是你的代码实在是太乱了

    评论

报告相同问题?