求助:关于C语言的改错~~

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:07:12
题目:写出语句scanf("yy-mm-dd=%d-%d-%d",&year,&month,&date);从键盘上的输入形式~~
既写出相对应的printf语句~~
我的答案是:
这是我后来输入的编码:
#include<stdio.h>
main()
{
int year, month, date;
scanf("yy-mm-dd=%d-%d-%d",&year,&month,&date);
printf("yy-mm-dd=%d-%d-%d,year,mmonth,data");
}

可在执行后,我输入2009,08,11后,
出现的却是
yy-mm-dd=2654561-415613123-165161612,year,mmonth,data
怎么回事啊?
我该怎么改?

楼主。scanf除了格式控制以外(%d%f之类的,其他的都要照抄才能正确运行的)

你试一下这样输入

yy-mm=2009-08-11
这样就肯定可以了

其实数字就是用%d来存储了。而其他的符号因为系统 不分配给他存储的地址,所以必需要照写,来中和掉

我来给你全面改个错
#include<stdio.h>
main()
{
int year, month, date;
scanf("%d%d%d",&year,&month,&date); //这里的目的是输入3个数字你前面加了一大串更本没一点用!
printf("yy-mm-dd=%d-%d-%d",year,month,date); //这里你的"加错位置,应该如我所示,另英语问题mmonth改month,data改date。(相信你是手误)
}

#include<stdio.h>
main()
{
int year, month, date;
scanf("%d%d%d",&year,&month,&date);
printf("yy-mm-dd=%d-%d-%d\n",year,month,date);
}

scanf函数中,除了"%(格式说明符)"之外,其他都得原文输入。
所以,你既然这样写:
scanf("yy-mm-dd=%d-%d-%d");
输入时就应该写成这样:
yy-mm-dd=2009-08-11
这样结果就是:
yy-mm-dd=2009-08-11,year,mmonth,data

输入要保持一致
%d-%d-%d就要2009-08-11就是输入