鱼C论坛

 找回密码
 立即注册
查看: 1607|回复: 6

[已解决]小问题,求小伙伴指导

[复制链接]
发表于 2020-1-28 19:49:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include"stdio.h"
#define m  5
#define n  4

double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size)
{
    int i, j, t, a[nums1Size+nums2Size];
    double mid_digit;
    for(i = 0, j = 0; i < nums1Size; j++, i++)
    {
        a[i] = nums1[j];
    }
    for(i = nums1Size, j = 0; i < nums1Size + nums2Size; i++)
    {
        a[i] = nums2[j];
        j++;
    }
    for(i = 0; i < (nums1Size+ nums2Size) - 1; i++)
    {
        for(j = i + 1; j < nums1Size + nums2Size; j++)
        {
            if(a[i] > a[j])
            {
                t = a[i];
                a[i] = a[j];
                a[j] = 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[m], nums2[n];
    printf("Please input some numbers:\n");
    for(i = 0; i < m; i++)
    {
        scanf("%d", nums1[i]);
    }
    for(j = 0; j < n; j++)
    {
        scanf("%d", nums2[j]);
    }
    mid_digit = findMedianSortedArrays(nums1, m, nums2, n);
    printf("The middle digit is %.1lf\n", mid_digit);

    return 0;
}


}

报错2        13        C:\c程序\JOB\寻找两个有序数组的中位数.c        [Error] expected identifier or '(' before numeric constant
最佳答案
2020-1-30 09:39:24
#define m  5
#define n  4  

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[m], nums2[n];
我觉得这里的m,n并没有使用你宏定义的5和4,而是主函数里 int m,n,把这句删了试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-28 20:01:01 | 显示全部楼层
#include <stdio.h>
#define M 5
#define N 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-28 20:02:31 | 显示全部楼层
数组a的定义不能用变量,a[nums1Size+nums2Size];

大括号的位置也有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-29 14:18:45 | 显示全部楼层
shake_a_tree@16 发表于 2020-1-28 20:02
数组a的定义不能用变量,a[nums1Size+nums2Size];

大括号的位置也有问题

这是形参喔,实参用了预定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-29 14:23:38 | 显示全部楼层
love_qj 发表于 2020-1-29 14:18
这是形参喔,实参用了预定义

这还是小问题,我还看不懂!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-29 20:46:44 | 显示全部楼层
love_qj 发表于 2020-1-29 14:18
这是形参喔,实参用了预定义

跟形参实参没有关系,数组定义就有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-30 09:39:24 | 显示全部楼层    本楼为最佳答案   
#define m  5
#define n  4  

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[m], nums2[n];
我觉得这里的m,n并没有使用你宏定义的5和4,而是主函数里 int m,n,把这句删了试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 04:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表