马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 秃先生 于 2013-8-29 20:07 编辑
各位,这道题是求给出三个学生的四门成绩,用函数找出每个学生没过的科目。我的思路是用函数找出一个学生没过的成绩,用数组存储,然后把数组首地址返回主函数。
下面是我的代码:
#include <stdio.h>
int main(void) { double score[3][4]={{65.5,55,70,34},{68.5,90,70,85.5},{59,77,99,60}};//这行学生成绩; double **p;//接受函数返回值 int search(double **,int);//声明函数 int i,j; // i表示学生代号,j用来调试返回数组的长度。 for (i = 0; i<3; i++) //循环三个学生 { p = search(score, i);//带入函数,我估计就是这步开始错了 if (**p) { for (j = 0; *(*p+j) != 0; j++) { printf("The student %d failed sebjuct is %d",i,*(*p+j)); } } } }
int search(double **a,int b) { int j,i=0; double **c; double test; test = **a;//a接受的是score二维数组的数组名,也就是首地址。这边应该test = score[0][0]也就是65.5才对,但是我单步调试显示的是0. for (j = 0; j < 4; j++) {
if (*(*(a+b)+j)<60.0) { c[ i ] = (*(a+b)+j); i++; } } *c [ i ]=0; return c; } 我猜测是我二维数组概念错误,但是我不知道怎么改,请各位帮忙看看呗!拜谢 |