鱼C论坛

 找回密码
 立即注册
查看: 718|回复: 0

[技术交流] 关于结构体数组指针的实践

[复制链接]
发表于 2020-4-6 22:41:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 01:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表