系统粉 > 电脑问答 > 其他问答

已解决关于结构体的问题

提问者:1254032646阿  |  浏览次  |  提问时间:2017-03-27  |  回答数量:9

关于结构体的问题struct stud {char num[5],name[10]; int s[4]; double ave; }; void readrec(struct stud *ps) {int i,j; for(i=0;i<N;i++) {printf("输入编号");gets(ps.num);   printf("输入姓名");gets(ps.name);   for(j=0;j<4;j++) {scanf("%d",&ps.s[j];ps.ave+=ps.s[j]/4;}   getchar(); } } 最后的getchar()的解释是读走输入缓冲区内的回车符,但我不理解是什么意思,为什么要有这句语句?

已有9条答案
蓝桥遗梦魔力鸟

蓝桥遗梦魔力鸟

回答数:196  |  被采纳数:89

去掉试试就知道了
2017-03-28 00:51:23
赞 19
大白菜地里黄丶

大白菜地里黄丶

回答数:134  |  被采纳数:8

判断输入一个字符串的结束位置吧,以Enter或是“\0”结束
2017-03-27 23:27:25
赞 13
吹柳絮

吹柳絮

回答数:169  |  被采纳数:99


去掉之后 输入编号和输入姓名就在一行了为什么呢?
2017-03-28 07:27:34
赞 16
吮色儿

吮色儿

回答数:24  |  被采纳数:137


显示输入编号后有没有等待用户输入还是直接打出“输入姓名”
2017-03-28 02:25:57
赞 2
傻妮丶

傻妮丶

回答数:141  |  被采纳数:17


去掉后就变这样了求解~~~~(>_<)~~~~

(1)

2017-03-28 11:25:20
赞 14
我叫梅人耀

我叫梅人耀

回答数:8  |  被采纳数:7


#include<stdio.h>
#define N 3
struct stud
{char num[5],name[10];
int s[4];
double ave;
};
void readrec(struct stud *ps)
{int i,j;
for(i=0;i<N;i++)
{printf("输入编号");gets(ps.num);
printf("输入姓名");gets(ps.name);
for(j=0;j<4;j++) {scanf("%d",&ps.s[j]);ps.ave+=ps.s[j]/4;}
getchar();
}
}
void writerec(struct stud *ps)
{int i,j;
for(i=0;i<N;i++)
{puts(ps.num);puts(ps.name);
for(j=0;j<4;j++) printf("%d ",ps.s[j]);
printf("ave=%d\n",ps.ave);
}
}
void main()
{struct stud a[N];
readrec(a);
writerec(a);
}

以上是全部程序,ave的值输出不对,找不出问题,求解~~~~(>_<)~~~~

(2)

2017-03-28 01:13:55
赞 0
流浪神使

流浪神使

回答数:138  |  被采纳数:18

(3)求大神指点
2017-03-28 12:37:49
赞 13
13or1n9

13or1n9

回答数:1  |  被采纳数:136



ps[i ].ave没有初始化
还有 printf("ave=%f\n",ps.ave);
2017-03-28 18:54:13
赞 0
王位载手

王位载手

回答数:96  |  被采纳数:44


额 这样的 谢谢啦~还有个问题 还是不明白那个getchar()的作用
2017-03-28 00:59:01
赞 9
相关问答
最新其他问答
解决方法