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