
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;
---------------------------------------------------------------------
} 展开
#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;
---------------------------------------------------------------------
} 展开
展开全部
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);
scanf("%d %s %f %f %f",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score2,&(p+i)->score3);
追问
为什么我加上%f后输入了五个值却还要我再输入一个值才进入下一循环
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询