C语言,初学者问一问题。

#include<stdio.h>main(){intx,y,z,a,b,c;printf("Pleaseenteryourbirthday:Year/Month/Dat... #include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z);
a=x/100-0.5;
a==20? 21:20;
printf("Your was born in %d Century.\n",a);
}
请教大师怎么输出正确的数字啊
展开
 我来答
zhang03091354
2012-11-24 · 超过15用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:41.6万
展开全部
既然是初学者,我想告诉你一点基本的知识,首先那个scanf函数,是个输入流函数,即是从终端(即键盘)读取信息,你的那条语句是要输入三个数据,首先就有个怎么用键盘输入三个数据的问题,我想让你知道,你输入数据的时候,最好用空格来分隔三个数据,这些你慢慢就会知道为什么这么做。
然后,是那个 a=x/100-0.5; 这条语句,我想说,两个整形相除还是整形,是下取整的,举个例子(你也可以自己编程去试试),1/2=0 4/3=1。就没有必要减去0.5了
最后,是那个三元操作符。首先a==20?21:20;这条语句,是三元操作符是有个结果的,即如果a==20,则结果是21,反之结果是20;所以你应该用a来存贮这个结果,因为你的意思应该是,如果上面的表达式的结果是20的话,那就是21世纪(这什么要+1,我也理解你的想法),反之是20世纪(这个想法其实是初学者的通病,即想的都是那么现实,其实程序跟人的想法和现实是有差距的,程序是呆板的,不能用人的逻辑去写程序),你是想着人一般不是20世纪,就是21世纪,这无可厚非,但总归有局限性。其实,这样的话,就可以大可不必用这条语句了。

我的答案是:
#include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z);
a=x/100+1;
printf("Your was born in %d Century.\n",a);
}
如果非要用那个三元表达式的话(是存在局限性的):
#include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z);
a=x/100;
a = a==20? 21:20;
printf("Your was born in %d Century.\n",a);
}

希望等帮你解决一些难题,都是这么过来的,当时有人帮过我,我也想帮助别人
edisonrush
2012-11-24 · TA获得超过554个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:174万
展开全部
你的程序里 有些错误
#include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z); //scanf函数中 输入中 不需要要 \n, 将其去掉
a=x/100-0.5; //根据年计算世纪的方法应该为:a=int(x/100) +1;
a==20? 21:20; //这句没有意义吧, 可以删除
printf("Your was born in %d Century.\n",a);
}

程序可改为:
#include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d",&x,&y,&z);
a=int(x/100) +1;
printf("Your was born in %d Century.\n",a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a3795a7
2012-11-24 · TA获得超过513个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:188万
展开全部
main()
{ int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z); a=x/100+1;
printf("Your was born in %d Century.\n",a);
}
//算出生 世纪就这样就可以了。
// 输入的时候要加/ 比如:2012/11/24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2012-11-24 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1078万
展开全部
#include<stdio.h>
main()
{
int x,y,z,a,b,c;
printf("Please enter your birthday:Year/Month/Date\n");
scanf("%d %d %d\n",&x,&y,&z);
a=x/100;//不用减0.5 x是整型 除以100还是整型 不会四舍五入
a==20? 21:20;
printf("Your was born in %d Century.\n",a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式