c语言用数组加上for语句来写

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

从键盘输入某班学生某门课程的成绩和学号(最多不超过20人,具体人数由用户输入学生的成绩的个数来定),当输入负值时,表示输入结束,用函数编程通过返回数组中最大元素的下标,查找并输出成绩的最高分及其对应的学生学号。

你好,如有帮助,请采纳


#include<stdio.h>
#include<stdlib.h>
int main()
{
    int id;
    long ID[20];
    int score[20];
    int j = 0;
    do{
        printf("Input student’s ID and score:");
        scanf("%ld%d", &ID[j], &score[j]);
        j++;
    }while(ID[j-1] > 0 || score[j-1] > 0);
    printf("Total students are %d\n", j-1);
    printf("Input the searching ID:");
    scanf("%ld", &id);
    for(int i = 0; i < j-1; i++)
    {
        if(ID[i] == id)
        {
            printf("score = %d\n", score[i]);
            exit(0);
        }
    }
    printf("Not found!\n");
}