一道关于指针的题目,差最后一步;百思求解
题目要求:指针的作业题。一个班有4个学生,五门课,求1:第一门课的平均分 2:找出平均成绩在90分以上,或全部课程成绩在85分以上的学生。用函数实现 ;我的程序如下:
程序代码:
#include "stdio.h" #include "conio.h" #include "string.h" float top(float(*p)[5],int n) { float sum=0,ave=0; int i,j,a=0; for(i=0;i<n;i++) { sum=0; a=0; for(j=0;j<n+1;j++) { if(*(*(p+i)+j)>=85) a++; sum=sum+*(*(p+i)+j);} ave=sum/(n+1); if(ave>=90) printf("the student number ave>90 is:%d\n",i) ; else if(ave<90&&a==5) printf("the student number>85 is:%d\n",i) ; } } float average(float(*p)[5],int n) { int i,j=0; float ave=0,sum=0; for(i=0;i<n;i++) sum=sum+*(*(p+i)+j); ave=sum/n; printf("average=%5.2f\n",ave); } main() { float a[4][5]={{70,75,89,64,51},{89,92,88,97,93},{62,51,28,75,59},{85,86,87,89,88}}; float average(float(*p)[5],int n); float top(float(*p)[5],int n); int i,m; average(a,4); top(a,4); getch(); }问题是,这个程序运行会一闪而过。
但是,如果在主程序中,只用一个函数,如average(a,4)或top(a,4),都可以得到正确结果,这二个函数一起运行,
就会闪过去。
求解。
谢谢各位