我有两道C语言程序设计题不会写,恳请高手帮助,我在此先谢谢.

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:20:12
我有两道C语言程序设计题不会写,恳请高手帮助,我在此先谢谢.
(一)输入一个学生的生日(年, 月, 日, )和当前日期(年,月,日),求出该学生的实际年龄.
(二)找出所有的水仙花数是这样的三位数,其各位数字的立方和等于位数,如 1的立方+5的立方+3的立方=153,即153是一个水仙花数.

main()
{
int a,b,c,d;

for(a=100;a<1000;a++)
{
b=a/100;
c=(a%100)/10;
d=a%10;
if (a==b*b*b+c*c*c+d*d*d)
printf("%d\n",a);
}

思路:
实际年龄吗?应该是nian1-nian0 yue1-yue0 ri1-ri0
只不过不是10进制罢了
第二个最笨的办法,从100开始循环,挨个试验不就得了!

第一道 实际年龄应该是周岁吧~~抓住周岁是关键 必须满了一年才能算大了一岁
main()
{
int y1,y2,m1,m2,d1,d2,age;
/*y1 m1 d1是出生日期,y2,m2,d2是现在日期*/
if(m1>m2)age=y2-y1-1; /*这个是类似 2000.10--2007.6的分支*/
else if(m1==m2)
{ if(d2>=d1)age=y2-y1;
else age=y2-y1-1;
} /*这个是当月相等时 再判断日*/
else age=y2-y1;
printf("the age is %d",age);
}
其实方法很多 这个只是一种而且感觉不是很简便

第二道 这是比较经典的题
main()
{
int i,j,k,n;
printf("“水仙花”数是:");
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
p