c语言for循环中的scanf被跳过 10

我的代码如下用线隔开的是出问题的地方#include<stdio.h>typedefstructStudent{intnum;charname[20];floatscor... 我的代码如下 用线隔开的是出问题的地方
#include <stdio.h>
typedef struct Student
{
int num;
char name[20];
float score1;
float score2;
float score3;
float aver;
} STU;
int main(void)
{
int high;
int i;
STU myClass[5];
STU *p;
p = myClass;
printf("Please input students info:Num Name score1 score2 score3\n");
------------------------------------------------------------
for(i = 0;i<5;i++)
{
printf("%d:",i+1);
scanf("%d %s %f %f ",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score2,&(p+i)->score3);
(p+i)->aver=((p+i)->score1+(p+i)->score2+(p+i)->score3)/3;
---------------------------------------------------------------------
}
展开
 我来答
Thomast丶
2018-04-16
知道答主
回答量:8
采纳率:100%
帮助的人:3.5万
展开全部
scanf("%d %s %f %f ",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score2,&(p+i)->score3);//这段代码里面从键盘只读取了4个值,却要赋值给5个成员,少了一个%f。
scanf("%d %s %f %f %f",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score2,&(p+i)->score3);
追问
为什么我加上%f后输入了五个值却还要我再输入一个值才进入下一循环
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式