这是自己定义的一个接收学生成绩和学号的函数
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什么原因?
你的i在给俩个数组对应下标的元素输入值完后自加了1,
而且你用的是逗号作为分割,逗号是不行的,读取数据时读到逗号过不去会一直卡在逗号那里,循环一直执行往后读取什么都读不到,应该改为空格分割
还有你score数组里后面的那些元素未初始化,此时score[i]的值是未知的,所以直到i为26时对应的元素正好是个小于0的数然后结束了循环,i就为26了