代码如下
#include
void search(float (*p)[4],int n)
{
int i,j,k;
for(i=0;i<n;i++)
{ k=0;
for(j=0;j<4;j++)
if(*(*(p+i)+j)<60)
k=1;
if(k==1)
{
printf("the falied student numbers are No.%d\n",i+1);
for(j=0;j<4;j++)
printf("%5f\t",*(*(p+i)+j));
}
}
}
int main()
{
void search(float (*p)[4],int n);
float a[3][4]= { 65,67,70,60,80,87,90,81,90,99,100,98 };
search(a,3);
return 0;
}
目的是查找有一门以上功课不及格的学生,输出他们的全部课程的成绩,编译器没报错,但是运行直接没有结果press any key to continue....
大一小白真心求答案
第一个问题
if(k==1)
{
printf("the falied student numbers are No.%d\n",i+1);
for(j=0;j<4;j++)
printf("%5f\t",*(*(p+i)+j));
}
这个判断肯定是在 if(*(*(p+i)+j)<60) 这个条件内,然后你所有的数据也没有小于60分的,怎么能出数据。。。。
害我在机器上还跑了一遍,这种错误多检查检查
我C语言也比较渣,感觉应该是if条件的设置问题吧,你只有<60,当数组里没有小于60的值时估计就不行了吧,加个else if