这题不会做啊?求解答,求助

图片说明

1个回答

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEM_NUM 10000
#define MAX_VALUE 10000
#define MAX(a, b) ((a) > (b) ? (a) : (b))

int main(void)
{
    int item_num = 0;
    int count_each_num[MAX_VALUE] = {0};
    int index = 0;
    int value = 0;
    int max_value = 0;

    scanf("%d", &item_num);
    if(item_num < 1 || item_num > MAX_ITEM_NUM)
    {
        printf("please input number in 1 to %d !!!", MAX_ITEM_NUM);
        return -1;
    }

    //memset(count_each_num, 0, sizeof(count_each_num));
    for(index = 0; index < item_num; index++)
    {
        scanf("%d", &value);
        if(value >= MAX_VALUE)
        {
            printf("each number must less than %d !!!", MAX_VALUE);
            return -2;
        }
        max_value = MAX(value, max_value);
        count_each_num[value]++;
    }

    for(index = 0; index <= max_value; index++)
    {
        printf("%d:%d\n", index, count_each_num[index]);
    }

    return 0;
}

u012000056
mkchiny 也可以不用memset,定义数组的时候可以初始化一下也行
10 个月之前 回复
u012000056
mkchiny memset只是初始化一维数组而已,可以网上查下memset的用法;至于那个宏是自己写的,判断两个数之中的最大值
10 个月之前 回复
weixin_43377315
LWJCode 还有那个有参的宏也没学
10 个月之前 回复
weixin_43377315
LWJCode 能用其他的吗?
10 个月之前 回复
weixin_43377315
LWJCode 那个memse还没教啊
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!