
C语言中用结构体类型作为自定义函数的返回值时,如果用户输入的数据在结构体中不存在,则出现NULL,此时会
#include<stdio.h>typedefstruct{ intid; charname[20];}stu;...
#include<stdio.h>typedef struct{ int id; char name[20];}stu;stu info[100];stu getStuByid(int id,stu info[]){ int inc=0; stu* p; p=info; for(inc=0;id!=info[inc].id;inc++); if(p==NULL) return ?//请问此处改怎么返回? else return info[inc];}void main(){ printf("id\\>"); scanf("%d",&id); getStuByid(id,info); printf("%d\t%s\n",getStuByid(id,info).id,getStuByid(id,info).name);}
展开
1个回答
展开全部
#include<stdio.h>
typedef struct{ int id; char name[20]; } stu;
stu info[100];
stu getStuByid(int id /*,stu info[]*/){
int inc=0;
static stu infoNULL = {-1,"Not Found"};//添加一个做为空的返回值
stu* p;
p = info;
for(inc=0;id!=info[inc].id && inc<sizeof(info);inc++);//for(inc=0;id!=info[inc].id;inc++);
if(inc==sizeof(info))//(p==NULL)
return infoNULL; //请问此处改怎么返回?//改的可不止此处哦
else
return info[inc];
}
void main(){
//在使用info前应当有个赋值的过程吧
printf("id\\>");
scanf("%d",&id);
getStuByid(id /*,info*/);
printf("%d\t%s\n",getStuByid(id,info).id,getStuByid(id,info).name);
}
typedef struct{ int id; char name[20]; } stu;
stu info[100];
stu getStuByid(int id /*,stu info[]*/){
int inc=0;
static stu infoNULL = {-1,"Not Found"};//添加一个做为空的返回值
stu* p;
p = info;
for(inc=0;id!=info[inc].id && inc<sizeof(info);inc++);//for(inc=0;id!=info[inc].id;inc++);
if(inc==sizeof(info))//(p==NULL)
return infoNULL; //请问此处改怎么返回?//改的可不止此处哦
else
return info[inc];
}
void main(){
//在使用info前应当有个赋值的过程吧
printf("id\\>");
scanf("%d",&id);
getStuByid(id /*,info*/);
printf("%d\t%s\n",getStuByid(id,info).id,getStuByid(id,info).name);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询