问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...表示学生有关信息的描述(姓名、出生日期的年月日)

发布网友 发布时间:2024-05-09 18:10

我来回答

3个回答

热心网友 时间:2024-06-03 14:25

哦,因为是自己的电脑没装VC没法调试查错,我只说说你比较明显的错误吧,struct是定义一个结构体作为变量类型,定义结构体的格式时要用类似struct date{int year;int month;int day;};这样的形势,但是在定义结构体的实例时,直接用date x,y;就可以了,也就是定义了一个名为date的结构体类型,它和int,float这样的变量类型用法是类似的。
原程序中,第2行的int compare(struct date x,struct date y)应为int compare(date x,date y),不过要注意struct date{int year;int month;int day;};语句应出现在本行以前。
倒数第8行的struct student *p;应为student *p;

我把你原先的程序大致改了一下,没有细看,细节上你自己再查查吧,应该问题不大了:
#include<stdio.h>
struct date{int year;int month;int day;}; //定义日期结构体类型
struct student
{ char name[20];
char sex;
struct date birth;
};

int compare(date x,date y)
{ int flag;
if(x.year>y.year) flag=1;
else if(x.year<y.year) flag=0;
else
{ if(x.month>y.month) flag=1;
else if(x.month<y.month) flag=0;
else
{ if(x.day>y.day) flag=1;
else if(x.day<y.day) flag=0;
else flag=-1;
}
}
return flag;
}

void main()
{
int i;
student s[4];
student p;
p=s[0];
for(i=0;i<4;i++)
scanf("%s%c%d%d%d",s[i].name,&s[i].sex,&s[i].birth.year,&s[i].birth.month,&s[i].birth.day);
for(i=0;i<4;i++)
if(compare(p->birth,s[i].birth)==0) p=s[i];
printf("年龄最大者的姓名::%s\n",p->name);
}

针对输入部分我补充一下,你的输入通配符,中间没有间隔符,比如逗号或分号,比较容易混淆,我建议你详细一点写。另外,p不用定义成指针,结构体之间相互复制可以直接用等号的。
如果要我写输入,我会这么写的(你可以参考下,个人习惯不同,我是比较喜欢排除一切意外的):
for(i=0;i<4;i++)
{ printf("请输入第%d个人的姓名:",i+1);
scanf("%s",&s[i].name);
printf("请输入第%d个人的性别:",i+1);
scanf("%c",&s[i].sex);
……
}

注意以下,scanf的参数前面要带&表示是回传数值。

热心网友 时间:2024-06-03 14:30

struct date{int year;int month;int day;};
struct student
{ char name[20];
char sex;
struct date birth;
}s[4];
这个放在头文件下面

热心网友 时间:2024-06-03 14:27

沙维调整了下,编译没有错。
数据结构的定义最好放到.H文件。

另外就是注意程序的排版。可读性太差了。

友情提示:出生日期如果是用字符串的话。。直接字符串比较大小会简单的多。
18740214可定比20010101要小的多。字符串完全可以比较出来,不用分什么年月日。IF条件看的纠结。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
儿歌祖国妈妈我爱你是谁写的汇总28句 为什么有的人学几何很厉害数学却不行 一个人数学几何好,但是其他计算方面的都马马虎虎,那么说明这个人怎么... 数学几何好的人,就是一道几何题很快就能想出来的人是不很聪明?这能练... 固安尚城国际怎么样 驾驶员咨询服务营业执照经营范围怎么写 驾校属于什么经营范围 核桃粉保质期多长时间 亿生康宝筋骨冷敷凝胶只在国内销售吗? 清河镇概况 龙凤胎姐弟20岁之前可以在一个房间睡觉吗 明天就是和我女朋友一百天了 送什么花好?百合还是玫瑰? 谢谢 求解释... 木崔读什么字 泗泾医院可以测宝宝脸上的黄疸吗 办过酒席,但是没领证,是不是也算二婚 68年农历10月初8晚上三四点出生的人命运 我68年7月18阴历晚上9点钟左右出生的今年的运气好不好问 69年八月初八今年命好吗? 68年08月12日晚上7-8点出生命运 说到做到的意思还有别的形容词吗 英语The children in our country are growing up_.(health) It rained... heaithy eating 急, 适宜堂膏药有人用过吗?效果怎么样呢? heaithy teeth的中文 stay heaithy 什么意思 在过滤的实验操作过程中,某同学经过两次过滤仍浑浊,请你帮助该同学分析... ...作用.在过滤时,两次过滤后滤液仍然浑浊的原因是:①___;②... 南通西站到吴窑镇怎么坐车? 捷豹旋转档位升不起来的是什么原因? 蔗糖水解制备羟甲基糠醛属于什么实验 范仲淹的《渔家傲》全诗抒发了作者怎样的复杂感情?“霜满地”在表达上... 制作肉末炒蒜苔前需要准备什么? 政治经济学:4.1 资本主义的简单再生产和扩大再生产。资本积累的本质_百 ... 政治经济学,外延式再生产 扩大再生产条件下社会总产品是如何实现的? 单招还是专科?选哪个更适合你? ...近似地看作恒压源,则它的内阻与负载电阻相比是大还是小 对于一个实际电源,如果内阻很小,一般视其为___;如果内阻较大,一般视其... ...3) 将它短路, 并说明与实际电压源的短路情况是否一样 云乳到一东莞多少公里 都是农村客运长线客车能装短线客吗 客运车辆必须进站上下客适用那条法律法规。​ 2/4 4/4 林俊杰的音乐有哪些 保卫黄河的全班大合唱两个人四手联弹伴奏可以吗 ...和闪电灯亮,不能加油,转速下降速度只有四五十码,这是什么原因... 里面有一句这样的歌词 分手了就把我忘了吧 想念一个人真的好寂寞 这... 猫咪总是偷吃狗粮,这样会对它造成伤害吗? 速冻包子是冷水蒸还是热水蒸速冻包子应该用什么水蒸 万能总开关跳扣开关电线圈不要可以吗? 中车齐车集团石家庄公司获中老铁路200辆通用敞车订单