请教一个C语言循环的问题!很急~~

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:58:19
需要做这样一个循环结构:
输入一个字符串(学生号),与现有的结构体数组里的字符串做比较,如果存在,就输出这个学生的全部资料,如果不存在,输出“该记录不存在!”的句子~
这是我写的代码,我知道肯定不对~麻烦大家帮忙改一下~~谢了~~很急的~~
stud是我定义的结构体数组,inputID是供用户输入的字符串~
int i=0;
char inputID[10];
printf("Please Input the Student ID of the record to be displayed: ");
scanf("%s",&inputID);
for(i=0;i<count-1;i++)
{
if(strcmp(inputID,stud[i].stuID)==0)
{
printf("\nStudent's Record as Follows: \n");
printf("%s %-10s %-3d %-6.1f\n",
stud[i].stuID,stud[i].name,stud[i].age,stud[i].score);
}
else
printf("No Such Record Found!\n");
}

int i=0,k=0;
char inputID[10];
printf("Please Input the Student ID of the record to be displayed: ");
scanf("%s",inputID);
for(i=0;i<count-1;i++)
{
if(strcmp(inputID,stud[i].stuID)==0)
{ printf("\nStudent's Record as Follows: \n");
printf("%s %-10s %-3d %-6.1f\n",
stud[i].stuID,stud[i].name,stud[i].age,stud[i].score);
k=1;
}
}
if(k==0)
printf("No Such Record Found!\n");

注:
scanf("%s",&inputID); 这句不对,inputID本身就是一个地址,不需要再用地址运算了,还有就是在循环体里,不要加上这一句else
printf("No Such Record Found!\n");
这样每次执行循环体,都要执行这一句,如果记录不存在,那不是每次都要输出No Such Record Found!\n 了吗!!!
我在里面加了一个跟踪变量,循环结束后,根据k的值判断记录是否存在!还有你在主函数中用到strcmp函数,记得加上#include<string.h>

错误1: scanf("%s",&inputID);中把&字符去掉,inputID本身就是指针

错误2:如果count变量是指stud数组的长度,那么for(i=0;i<count-1;i++)这句话