这个代码怎么写?求!

刚学c语言不久,好多不会,求解
1111111111111111111111111

img


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

int findRepeatNumber(int *nums, int *b, int numsSize);
int
main(int argc, char *argv[]) {

    int n;             // 班级一共几个人,最大30

    while(scanf("%d",&n)!=EOF) {
        int a[n];       // 班级人数投票结果的最大可能

        for (int i = 0; i < n; i++) {
            scanf("%d", &a[i]);
        }
        int len = sizeof(a) / sizeof(a[0]);
        int *b = (int *) calloc(len, sizeof(int));
        memset(b, -1, len);
        int blen = findRepeatNumber(a, b, len);

        for (int i = 0; i < blen; i++) {
            printf("%d ", b[i]);
        }
        printf("\n");
    }
    return 0;
}

int findRepeatNumber(int *nums, int *b, int numsSize) {

    int blen = 0;
    for (int i = 0; i < numsSize; i++) {
        b[blen] = -1;
        for (int j = 0; j < numsSize && i != j; j++) {
            if (nums[i] == nums[j]) {  //找到重复选号
                int has = 0;
                for (int k = 0; k < blen; k++) {  //从b中找这个数字
                    if (nums[i] == b[k]) {
                        has = 1;
                        break;
                    }
                }
                if (has == 0) {
                    b[blen++] = nums[i];
                }
            }
        }
    }
    return blen;
}

img

多组循环输入输出问题
借助循环遍历找出最大值,对最大的值,进行统计记录,记录下其编号;
之后进行输出即可。
如果有多个,就建立一个辅助数组存储起来,之后按编号从小到大输出。


#include <stdio.h>
int main()
{
    
    int n;//n个同学
    while(scanf("%d",&n)!=EOF)
    {
        int a[105] = {0};
        for(int i=1;i<=n;i++)
        {
            int t;
            scanf("%d",&t);
            a[t]++;
        }
        int temp = a[1];
        int no = 1;//代表最多票数的同学
        int num = 0;//代表有多个 
        for(int i=2;i<=n;i++)
        {
            if(temp<a[i])
            {
                temp = a[i];
                no = i;
                num = 1;
            }else if(temp==a[i]){
                num++;
            }
        }
        if(num == 1)
        {
            printf("%d\n",no);    
        }else{
            for(int i=1;i<=n;i++)
            {
                if(a[i]==temp)
                {
                    printf("%d ",i);
                }
            }
            printf("\n");
        }    
        
    } 
    return 0;
    return 0;
 } 

img

如果对您有帮助,记得采纳呐!