当前位置: 代码迷 >> C语言 >> [求助]一个自己编的指针程序,无法输出正确结果,请各位指点!
  详细解决方案

[求助]一个自己编的指针程序,无法输出正确结果,请各位指点!

热度:61   发布时间:2005-09-18 00:03:00.0
[求助]一个自己编的指针程序,无法输出正确结果,请各位指点!

一个在下编的找出不及格的学生并输出他们成绩的程序,无法输出正确值。劳驾各位看一下错在哪里。 #define NULL 0 main() { int score[][4]={{60,70,80,90},{50,89,67,88},{34,78,90,66}}; int *search(int (*pointer)[4]); int *p; int i,j; for(i=0;i<3;i++) { p=search(score+i); if(p!=NULL) printf("No.%d scores:",i); for(j=0;j<4;i++) printf("%5d",*(p+j)); printf("\n");

} }

int *search(int (*pointer)[4]) { int j,*pt=NULL; for(j=0;j<5;j++) if(*(*pointer+j)<60)/*若有不及格课程,则把*pointer赋给pt*/ { pt=*pointer; break; } return (pt); } 

搜索更多相关的解决方案: int  指针  search  

----------------解决方案--------------------------------------------------------
指针用的不对,算法不好。如果一组有多个不及格的,你的程序能都打印出来吗?
----------------解决方案--------------------------------------------------------
上面这位仁兄,能具体指出在下指针哪里用错了吗?非常感谢!
----------------解决方案--------------------------------------------------------
哦,刚才我理解错了,我还以为每个数据是一个学生的成绩呢,应该是一组数据是一个学生的成绩吧。

main函数中if(p!=NULL)应该把后面的for包含进去。serach函数中j的取值是从0到3,所以不能用&lt;5做判断条件,而是&lt;4
----------------解决方案--------------------------------------------------------
我刚学。看的不大懂。

不过帮你运行了一下,确实有问题
----------------解决方案--------------------------------------------------------
不好意思,程序输入有误:for(j=0;j&lt;4;i++)应为for(j=0;j&lt;4;j++)  (第13行)
----------------解决方案--------------------------------------------------------
  相关解决方案