love_qj 发表于 2020-1-28 19:49:45

小问题,求小伙伴指导

#include"stdio.h"
#define m5
#define n4

double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size)
{
    int i, j, t, a;
    double mid_digit;
    for(i = 0, j = 0; i < nums1Size; j++, i++)
    {
      a = nums1;
    }
    for(i = nums1Size, j = 0; i < nums1Size + nums2Size; i++)
    {
      a = nums2;
      j++;
    }
    for(i = 0; i < (nums1Size+ nums2Size) - 1; i++)
    {
      for(j = i + 1; j < nums1Size + nums2Size; j++)
      {
            if(a > a)
            {
                t = a;
                a = a;
                a = t;
            }
      }
    }
    if((nums1Size + nums2Size) % 2 != 0)
    {
      return mid_digit = 1.0 * a[(nums1Size + nums2Size) / 2];
    }
    else
    {
      mid_digit = (a[(nums1Size + nums2Size - 1) / 2] + a[(nums1Size + nums2Size + 1) / 2]) / 2;
      return mid_digit;
}

int main()
{
    int m, n, i, j;
    double mid_digit;
    //printf("Please input the size of array nums1 and nums2:");
    //scanf("%d%d", &m, &n);
    int nums1, nums2;
    printf("Please input some numbers:\n");
    for(i = 0; i < m; i++)
    {
      scanf("%d", nums1);
    }
    for(j = 0; j < n; j++)
    {
      scanf("%d", nums2);
    }
    mid_digit = findMedianSortedArrays(nums1, m, nums2, n);
    printf("The middle digit is %.1lf\n", mid_digit);

    return 0;
}


}

报错2        13        C:\c程序\JOB\寻找两个有序数组的中位数.c        expected identifier or '(' before numeric constant

ba21 发表于 2020-1-28 20:01:01

#include <stdio.h>
#define M 5
#define N 4

shake_a_tree@16 发表于 2020-1-28 20:02:31

数组a的定义不能用变量,a;

大括号的位置也有问题

love_qj 发表于 2020-1-29 14:18:45

shake_a_tree@16 发表于 2020-1-28 20:02
数组a的定义不能用变量,a;

大括号的位置也有问题

这是形参喔,实参用了预定义

2164930278 发表于 2020-1-29 14:23:38

love_qj 发表于 2020-1-29 14:18
这是形参喔,实参用了预定义

这还是小问题,我还看不懂!

shake_a_tree@16 发表于 2020-1-29 20:46:44

love_qj 发表于 2020-1-29 14:18
这是形参喔,实参用了预定义

跟形参实参没有关系,数组定义就有问题

chxchxkkk 发表于 2020-1-30 09:39:24

#define m5
#define n4

int m, n, i, j;
    double mid_digit;
    //printf("Please input the size of array nums1 and nums2:");
    //scanf("%d%d", &m, &n);
    int nums1, nums2;
我觉得这里的m,n并没有使用你宏定义的5和4,而是主函数里 int m,n,把这句删了试试看
页: [1]
查看完整版本: 小问题,求小伙伴指导