新手求教,为什么我这个程序中查找值老是 -1呢?
#include<stdio.h>#include<conio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct
{
char name[40];
long number;
char adress[40];
float eng,datastructures,phisics,math;
}elemtype;
typedef struct
{
elemtype elem[maxsize];
int last;
}seqlist;
int found(seqlist *l,int e)
{
int i;
i=l->last;
while (i>=1&&l->elem[i].number!=e) i--;
if (i>=1)
return(i+1);
else
return (0);
}
void main()
{
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>学生管理系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
seqlist *l;
int i,n,e,p;
l=(seqlist*)malloc(sizeof(seqlist));
printf("请输入学生人数:\n");
scanf("%d",&n);
l->last=n-1;
for(i=0;i<=l->last;i++)
{ printf("请输入第%d个学生的基本信息 :\n姓名 学号 籍贯\n");
scanf("%s%d%s",&l->elem[i].name,&l->elem[i].number,&l->elem[i].adress);
fflush(stdin);
printf("请在下面一行输入第%d个学生的成绩\n 英语 数据结构 物理 高数\n");
scanf("%f%f%f%f",&l->elem[i].eng,&l->elem[i].datastructures,&l->elem[i].phisics,&l->elem[i].math);
}
printf("\n");
for(i=0;i<=l->last;i++)
{
printf("信息:");
printf("%10s%10d%10s%\n",l->elem[i].name,l->elem[i].number,l->elem[i].adress);
}
for(i=0;i<=l->last;i++)
{
printf("成绩:");
printf("10f%10f%10f%10f\n",l->elem[i].eng,l->elem[i].datastructures,l->elem[i].phisics,l->elem[i].math);
}
printf("\n");
printf("请输入你想要找的学生学号:\n");
scanf("%s",&e);
p=found(l,e);
if(e==-1)
printf("你所查找的学生不存在!\n");
else
printf("你所查找的学生位置是:%d\n",p);
printf("\n");
system("pause");
}