while 和for循环使用报错

while 和for循环

    for(int i=1;i<=N;i++){
        scanf("%d%d",&id,&grade);
        stu[id]=stu[id]+grade;
    }
while(N--){
        scanf("%d%d",&id,&grade);
        stu[id]=stu[id]+grade;
    }


用while循环答案错误

就这几行代码来看,逻辑是等价的,其他代码呢
如果N根本不是个变量而是个define,那你企图改变一个常量它当然是错的
或者N的值后面有用到,你把它减成0了当然也是错的

就这两段没啥区别啊,是不是还有别的代码?while循环结束后, N是-1,而for循环中,N是不改变的

看不出来