m0_73504043 2022-08-31 15:18 采纳率: 25%
浏览 44
已结题

这三题该怎么解,怎样直接在函数中用全局数组

题目

img

img

img

img


我感觉没什么问题,运行也成功了但就是过不了关,怎样才能返回字符串,用到全局数组

  • 写回答

2条回答 默认 最新

  • a5156520 2022-08-31 16:07
    关注

    把(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;
    }
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月31日