C语言关于结构数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 18:36:00
/*:根据学员姓名查询成绩的功能*/
#include<stdio.h>
#include<string.h>
struct student
{
char name[15];
int score;
};
int find(struct student s[5],int);
void main()
{
int i,n;
struct student stu[5];
printf("请输入学员信息");
printf("\n==================================");
for(i=0;i<5;i++)
{
printf("\n学员 %d 的信息",i+1);
printf("\n姓名:");
fflush(stdin);
scanf("%s",stu[i].name);
printf("\n成绩:");
scanf("%d",&stu[i].score);
}
n=find(stu,5);
printf("%s 成绩:%5.2f\n",stu[1].name,stu[1].score);
}
int find(struct student s[5],int n)
{
char name[10];
int i;
printf("\n请输入要查找的学员的姓名:");
scanf("\n%s",name);
//printf("%s",name);
for(i=0;i<n;i++)
{
if(strcmp(na

照下面注释改了就可以了,主要原因是因为score的类型不统一。

#include<stdio.h>
#include<string.h>
struct student
{
char name[15];
float score;// int改为float
};
int find(struct student s[5],int);
void main()
{
int i,n;
struct student stu[5];
printf("请输入学员信息");
printf("\n==================================");
for(i=0;i<5;i++)
{
printf("\n学员 %d 的信息",i+1);
printf("\n姓名:");
fflush(stdin);
scanf("%s",stu[i].name);
printf("\n成绩:");
scanf("%f",&stu[i].score); //%d改为%f
}
n=find(stu,5);
printf("%s 成绩:%5.2f\n",stu[n].name,stu[n].score); //1改为n
}
int find(struct student s[5],int n)
{
char name[10];
int i;
printf("\n请输入要查找的学员的姓名:");
scanf("\n%s",name);
//printf("%s",name);