当前位置: 代码迷 >> C语言 >> 求助,一个简单的学生成绩查询程序!!不知道错在哪??
  详细解决方案

求助,一个简单的学生成绩查询程序!!不知道错在哪??

热度:137   发布时间:2007-09-01 18:23:45.0
求助,一个简单的学生成绩查询程序!!不知道错在哪??

#include<stdio.h>
#include<string.h>
void chaxun();
void input();
struct student
{
char name[15];
int score;

};

struct student std[5];
void input()
{

int i;
printf("\t请输入信息\n");
printf("========================\n");
for(i=0;i<5;i++)
{
printf("\n学员%d的信息\n",i+1);
printf("姓名:");
fflush(stdin);
gets(std[i].name);
printf("成绩:");
scanf("%d",&std[i].score);
}

}

void chaxun()
{
int i,k=0;
char name2[15];
printf("\n输入要查找的姓名:\n");
fflush(stdin);
gets(name2);

for(i=0;i<5;i++)
{
if(std[i].name==name2)
{
k=1;
break;

}
}
printf("查询后的结果:\n");
if(k==1)
{
printf("\n%s:%d\n",std[i].name,std[i].score);
}
}

void main()
{
input();
chaxun();
}




不知道错在何处,请大侠们帮着看看,该如何改?谢谢!!!

搜索更多相关的解决方案: 学生  查询  

----------------解决方案--------------------------------------------------------
以下是引用猎刃在2007-9-1 18:23:45的发言:

#include<stdio.h>
#include<string.h>
void chaxun();
void input();
struct student
{
char name[15];
int score;

};

struct student std[5];
void input()
{

int i;
printf("\t请输入信息\n");
printf("========================\n");
for(i=0;i<5;i++)
{
printf("\n学员%d的信息\n",i+1);
printf("姓名:");
fflush(stdin);
gets(std[i].name);
printf("成绩:");
scanf("%d",&std[i].score);
}

}

void chaxun()
{
int i,k=0;
char name2[15];
printf("\n输入要查找的姓名:\n");
fflush(stdin);
gets(name2);

for(i=0;i<5;i++)
{
if(std[i].name==name2)这是比较两个地址,不是比较字符串的内容
{
k=1;
break;

}
}
printf("查询后的结果:\n");
if(k==1)
{
printf("\n%s:%d\n",std[i].name,std[i].score);
}
}

void main()
{
input();
chaxun();
}




不知道错在何处,请大侠们帮着看看,该如何改?谢谢!!!


----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<string.h>
void chaxun();
void input();
struct student
{
char name[15];
int score;

};

struct student std[5];
void input()
{

int i;
printf("\t请输入信息\n");
printf("========================\n");
for(i=0;i<5;i++)
{
printf("\n学员%d的信息\n",i+1);
printf("姓名:");
fflush(stdin);
gets(std[i].name);
printf("成绩:");
scanf("%d",&std[i].score);
}

}

void chaxun()
{
int i,k=0;
char name2[15];
printf("\n输入要查找的姓名:\n");
fflush(stdin);
gets(name2);

for(i=0;i<5;i++)
{
if(strcmp(std[i].name,name2)==0)//这里用strcmp()函数就可以了!~
{
k=1;
break;

}
}
printf("查询后的结果:\n");
if(k==1)
{
printf("\n%s:%d\n",std[i].name,std[i].score);
}
}

void main()
{
input();
chaxun();
}


----------------解决方案--------------------------------------------------------
谢谢,我试试!
----------------解决方案--------------------------------------------------------
  相关解决方案