运行程序时输出一个变量的值始终是一个定值

这是自己定义的一个接收学生成绩和学号的函数

int Getscore( float score[],long num[])
{
    int i=0;
    do
    {
        scanf("%ld,%f", &num[i], &score[i]);
        i++;
    }while(score[i]>=0);
    printf("%ld,%f\n%d\n",num[1],score[1],i);
    return i;
}


主函数
#include  
#define High 30
int Getscore( float score[],long num[]);
int main()
{
    int total;
     long num[High];
    float score[High];
     printf("Please enter num and score until score<0:\n");
    total=Getscore(score,num);
}


自己定义的函数中i的值输出始终是26什么原因?

img

你的i在给俩个数组对应下标的元素输入值完后自加了1,
而且你用的是逗号作为分割,逗号是不行的,读取数据时读到逗号过不去会一直卡在逗号那里,循环一直执行往后读取什么都读不到,应该改为空格分割
还有你score数组里后面的那些元素未初始化,此时score[i]的值是未知的,所以直到i为26时对应的元素正好是个小于0的数然后结束了循环,i就为26了