哈哈,我自己想清楚了,本问题已解决。之所以出现那个情况,是因为,在这个输出
printf("%.2f\n%d,%d\n",max(cj),row,column);
时,row和column还是输出的初值,因为必须调用完自定义函数后,row和column才是计算出来的结果。
因此如果把程序代码改成这样就是正常了:
/*增加了一个变量sum,这样可以再打印之前调用自定义函数*/
/*四个学生五门课,输出最高成绩以及它属于第几个学生第几门课*/
# include <stdio.h>
int row,column;/*设置全局变量,row表示最高成绩的学生序号,column表示最高成绩属于第几门课*/
void main ()
{
float max(float a[4][5]);
/*定义函数max*/
float cj[4][5]={{61,73,85.5,87,90},{72,84,66,88,78},{75,87,93.5,81,96},{65,85,64,76,71}};
/*cj表示成绩*/
float sum;
/*增加变量sum用来存放max(cj),这样可以在打印之前调用自定义函数*/
sum=max(cj);
printf("%.2f\n%d,%d\n",sum,row,column);
/*问题!!!*/
printf("%d,%d\n",row,column);
/*正常!!!*/
}
float max(float a[4][5])
{
int i,j;
float t=0;
for (i=0;i<4;i++)
for (j=0;j<5;j++)
if (a[i][j]>t)
{
t=a[i][j];row=i+1;column=j+1;
}
return (t);
}
/*****************************************************************************************************
求助各路神仙,为什么输出的结果row和column不一样,是什么原因?
*****************************************************************************************************/
谢谢每位老师的参与!!!