求告诉我应该怎么解决,真的不会

在for语句嵌套中
我要是用if就只能输入一组数据,要是用while就没办法结束输出,所以我应该怎么办

img

img

#include<stdio.h>
int main() {
    int N, a, M,M1=0, W,W1=0, i,j=0,k=0;
    float p, pM=0, pW=0;
    scanf("%d", &N);
    while(i <= N){
            scanf("%d", &a);
        if (a==1) {
            scanf("%d", &M);
            M1 += M;
            j++;
        }
        if (a == 0) {
            scanf("%d", &W);
            W1 += W;
            k++;
        }
        i++;
    }
 
    p = (float)(M1 + W1) / N;
    printf("%.1f\t", p);
    if (j != 0) {
        pM = M1 / j;
        printf("%.1f\t", pM);
    }
    else printf("X\t");
    if (k != 0) {
        pW = W1 / k;
        printf("%.1f\t", pW);
    }
    else printf("X");
    return 0;}

for循环,while循环都可以

循环条件改为scanf(....)!=EOF
scanf只要有成功接收返回值便不是EOF