c语言关于数组循环的问题

图片说明
[题目描述]
课堂参与度是指学生课堂上参与学习活动的多少,是考察学生课堂学习投入的重要指标,学生可以通过各种方式参与课堂的学习活动,例如回答问题、练习题的投稿、向老师提问、同学间的讨论等等,有些学生积极参与课堂活动,但也有些学生很少参与或者不参与,老师想知道在一次课中谁参与的课堂活动最多。
假设一个课堂中学生数不超过100人,并对每个学生从1开始顺序编号。现在输入参与各种活动的学生编号,输出参与课堂活动最多的学生编号。
[输入]
一批整数,表示参与活动的学生编号,各个整数之间用空格分隔,最后一个整数为0,表示输入结束。
[输出]
一个整数,为参与活动最多的学生编号,如果有多个学生编号,按从小到大的编号输出,两个编号之间用一个空格分隔
[样例输入]
5 13 21 7 65 7 21 38 82 21 33 21 0
[样例输出]
21


#include <stdio.h>
#include <string.h>
void main()
{
    while (1)
    {
        char input[1024] = { 0 };
        printf("请输入:\n");
        if (NULL == fgets(input, 1023, stdin))
        {
            printf("input error.\n");
            continue;
        }
        int inputSize = strlen(input);

        int allStudentNo[101] = { 0 };

        char lastChar = 0;
        int num = 0;
        int maxNum = 0;
        int maxStudendNo = 0;
        for (int i = 0; i < inputSize; ++i)
        {
            char c = input[i];
            if (c >= '0' && c <= '9')
            {
                if (lastChar == ' ' && c == '0')
                {
                    break;
                }
                else
                {
                    num = num * 10 + c - '0';
                }
            }
            else if (c == ' ')
            {
                if (num > maxStudendNo)
                {
                    maxStudendNo = num;
                }

                allStudentNo[num] += 1;
                if (allStudentNo[num] > maxNum)
                {
                    maxNum = allStudentNo[num];
                }
                num = 0;
            }
            else
            {
                printf("error char. %c\n", c);
                break;
            }
            lastChar = c;
        }

        printf("输出:\n");
        int outputIndex = 0;
        for (int i = 1; i <= maxStudendNo; ++i)
        {
            if (allStudentNo[i] == maxNum)
            {
                int n = i / 10;

                if (n > 0)
                {
                    char c = n + '0';
                    printf("%c", c);
                }

                int m = i % 10;
                char c = m + 48;
                printf("%c", c);
                printf(" ");
            }

        }
        printf("0\n");
    }
}