|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有两个警告不知道如何消除,但程序本身运行没有问题。
#if(1)
#include <stdio.h>
#define NUM 4
typedef struct Stu{
char num[8];
double score[2];
} STU;
double fun(STU *,int );
double fun(STU *p,int n)
{
int i;
double sum = 0.0;
double av = 0;
for( i = 0 ; i < n ; i++ )
{
sum += (p+i)->score[0]; //我擦。。对了。。 p每次加一,结构体数组指针指向下一个结构体数组,用指针取出相应的值。
}
av = sum/n;
return av;
}
int main ()
{
STU stu[4] = {
{"10001",76.5,82.0},
{"10002",66.5,73.0},
{"10003",80.5,66.0},
{"10004",81.0,56.0}};
STU (*p)[4]; //主要是模仿了二维数组用数组指针的方法指向,这里我考虑使用结构体数组指针指向,包含四个指向结构体数组的指针 主要是模仿了二维数组用数组指针的方法指向,这里我考虑使用结构体数组指针指向 p = stu;
printf("第一门课的平均分是:%lf\n",fun(p,4));
return 0;
}
#endif
//答案
#if(0)
#include <stdio.h>
typedef struct
{ char num[8];
double score[2];
}STU ;
double fun(STU std[], int n)
{ int i;
/**********found**********/
double sum=0.0;
/**********found**********/
for(i=0; i<n; i++)
/**********found**********/
sum += std.score[0];
return sum/n;
}
void main()
{ STU std[ ]={ "N1001", 76.5,82.0 ,"N1002", 66.5,73.0,
"N1005", 80.5,66.0,"N1006", 81.0,56.0 };
printf("第1门课程的平均分是:%lf\n", fun(std,4) );
}
#endif |
|