CSDN-Ada助手 2023-05-24 19:08 采纳率: 3.4%
浏览 13

为什么函数里第二行int nums[len];会报错_(语言-c语言)

该问题来自社区帖: https://bbs.csdn.net/topics/615513673.为符合问答规范, 该问题经过ChatGPT优化
为什么在函数中定义一个长度为变量len的数组int nums[len]会报错? ```html
#include<stdio.h>
#include<stdbool.h>

double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
    int len = nums1Size + nums2Size;
    int nums[len];
    int i = 0,j = 0,k = 0;
    while(i < nums1Size || j < nums2Size){
        if(nums1[i] < nums2[j]){
            nums[k++] = &nums1[i++];//运行之后k,i+1
            // k++;
        }else{
            nums[k++] = &nums1[j++];//运行之后k,j+1
            // k++;
        }
        if(k <= len/2+1){//到达一半时退出不在写入nums
            break;
        }
    }
    //防止有遗漏
    while(i < nums1Size){
        nums[k++] = nums1[i++];
        // k++;
        if(k <= len/2+1){
            break;
        }
    }
    while(j < nums1Size){
        nums[k++] = nums1[j++];
        // k++;
        if(k <= len/2+1){
            break;
        }
    }
    //判断数组长度奇偶
    double result;
    if(len % 2 == 0){
        result = (nums[len/2-1] + nums[len/2])/2.0;
    }
    else
    {
        result = nums[k];
    }
    printf("%.2f",result);
    
    return result;
}
int main(int argc, char const *argv[])
{
    int nums1[] = {1,2},nums2[] = {3};
    int size1 = sizeof(nums1)/sizeof(int);
    int size2 = sizeof(nums2)/sizeof(int);
    findMedianSortedArrays(nums1,size1,nums2,size2);
    return 0;
}
```
  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 创建了问题 5月24日

      悬赏问题

      • ¥15 XML文件报错不允许出现此特性,百度也搜不到解决方法
      • ¥15 FTPC共同交流学习
      • ¥20 就是目前有一个游戏程序,需要根据一些要求修改
      • ¥15 关于#python##pyqt#的问题,如何解决?
      • ¥15 html+css网页设计 html+css网页设计
      • ¥15 用html加css制作一个网页
      • ¥200 MFC中如何对ListCtrl的某一列的文本能换行显示
      • ¥15 clion添加库文件
      • ¥15 ERROR C2143怎么出现的?为什么ERROR C2144会这么转移,它是怎么出现的?该怎么解决?
      • ¥15 华大的hc32l136外部中断引脚怎么设置