题目
我感觉没什么问题,运行也成功了但就是过不了关,怎样才能返回字符串,用到全局数组
把(char * names[5][10])定义这个*星号去掉试试,变为char names[50][10], 因为二维字符数组可以存储多个字符串了。把(char *names[5][10])代表是字符指针二维数组。打印姓名可以用%s对应names[r].修改如下:
#include <stdio.h>
int ids[5] = {10001,10002,10003,10004};
char names[5][10] = {"张三", "李四", "王五", "赵六"} ;
int search(int key,int ids[],int len){
int ret =-1;
for(int i=0;i<len;i++){
if(key==ids[i]){
ret=i;
break;
}
}
return ret;
}
int main(void){
int k=10001;
int r = search(k,ids,sizeof(ids)/sizeof(ids[0]));
if(r>-1){
printf("%s\n",names[r]);
}else{
printf("null");
}
return 0;
}