永发信息网

C语言中结构体和指针运用。

答案:4  悬赏:70  手机版
解决时间 2021-05-09 06:16

#include<stdio.h>
#define N 2
struct STUDENT
{
char name[20];
int number;
float Math;
float English;
float Chinese;
};
struct STUDENT student[N];
void main()
{
int i;
struct STUDENT *p;
p=student;
printf("please input ten stuents' information!\n");
for(i=0;i<N;i++,p++)
scanf("%s,%d,%f,%f,%f",p->name,&p->number,&p->Chinese,&p->Math,&p->English);
for(i=0;i<N;i++,p++)
printf("%s,%d,%f,%f,%f\n",p->name,p->number,p->Chinese,p->Math,p->English);
}

输入学生的姓名,学号,三科成绩,再输出,编译正确,却得不到正确答案,不知为什么?

最佳答案

如楼上所说的..必须多写一次p=student;



但是我觉得您还有一个错误,就是...对于字符串的输入..应该与数值的输入分离的.



比如说.您输入的是: zhoujielun,12,23,45,65



那么在读入的时候就会将上面输入的整个字符串当成学生的姓名了.而导致各科目的分数没有数据的输入..



这样就孬了..您再仔细想想吧..如果想不出来就来问我..嘿嘿..

全部回答
去了后面那个for
我也是如楼上所说的.你再把p=student;写在第二个for()函数前.为什么会这样呢.因为当第一个for()孙数执行N次的时候.p也指向最后一个了.而第二个for又开始执行.所以p输出的是上次最后面的下一个.现在加上p=student;,让p重新指向开头.这样就可以输出.

再一次写p=student;

for(i=0;i<N;i++,p++) printf("%s,%d,%f,%f,%f\n",p->name,p->number,p->Chinese,p->Math,p->English);

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
被自己的孩子咬伤后需要采取什么措施吗?
www.qqok.c0m是不是官方网站
腊七腊八冻死寒鸦这条谚语说明了是什么
从辽宁省葫芦岛到山西省临汾市襄汾县怎样坐车
你觉得自己有超能力吗?
你能给我开通游戏人生吗
摩尔庄园msc答案 哪个职业可以随时随地拍摄照
寺坪村在哪里啊,我有事要去这个地方
描写哈尔滨一个季节的作文(300字 初一水平)
肠粉专用磨浆机磨的浆,蒸熟要用多少时间?
表达有缘相遇的句子,世界上的情人是不是有缘
玩QQ情侣家园怎么得分,哪里可以看到排行榜
韶关地区的W595才500元?
QQ宠物谁可以借我兵来打洛阳?
人生路怎么走才会少受伤
推荐资讯
我和她不在一个城市,但我们通过网络认识了,
《高达00》插曲
榆林商业银行没有可以到什么银行提取钱呢?
DNF最新客户端要下点什么补丁
Y460和U460哪个比较好挖...
请你把实况八最新的补丁给我发一遍吧
渤海财产保险股份有限公司淄博支行怎么去啊,
化工产品包括什么,今年做哪种化工产品最好销
最刺激的骂人的话是什么
百日祝福语
电脑音箱会发出类似电磁干扰的杂音
500-600元能买怎么样的低音炮?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?