关于C语言中一维数组的题

随机输入一批(不超过100人)学生的学号和身高,统计超过平均身高或身高超过170cm的学生人数并输出相应的学生信息和统计结果。

img

这是我初步打的代码,问题很大,不知道怎么做

每次进入while的时候xh[i]还没有赋值呢,都是非0的数,怎么可能会结束循啊。
你的代码错误太多了,代码修改如下:

#include <stdio.h>
int main()
{
    int i=0,n,sum=0,count=0;
    double avg;
    int xh[100],sg[100];
    while(1)
    {
        scanf("%d%d",&xh[i],&sg[i]);
        if(xh[i] < 0) 
            break;
    
        sum += sg[i];
        i++;
    }
    n = i;
    avg = 1.0*sum/n;
    for (i=0;i<n;i++)
    {
        if(sg[i] > 170 || sg[i] > avg)
            count++;
    }
    printf("超过平均身高或身高超过170cm的学生有%d个,信息:\n",count);
    for (i=0;i<n;i++)
    {
        if(sg[i] > 170 || sg[i] > avg)
            printf("%d %d\n",xh[i],sg[i]);
    }
    return 0;
}

随机输入的结束标志是什么?

  1. 把循环条件改为xh!=-1

2.在while循环前添加已个scanf用于输入学号和身高