| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:请大家帮我改一下这个程序
只看楼主 加入收藏
风——等待
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2011-6-27
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:4 
请大家帮我改一下这个程序
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。
求出该学生的平均分放在记录的ave成员中。
应该是fun函数错了,请大家帮我改一下   谢谢哈
#include <stdio.h>
#define   N   8
typedef  struct
{  
  char  num[10];
  double  s[N];
  double  ave;
  } STREC;
void  fun(STREC *a)
{
    int i,sum=0;
    for(i=0;i<N;i++)
    sum+=STREC.s[i];

}
main()
{
  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
  int  i;
  fun( &s );
  printf("The %s's student data:\n", s.num);
  for(i=0;i<N; i++)
  printf("%4.1f\n",s.s[i]);
  printf("\nave=%7.3f\n",s.ave);
}
搜索更多相关主题的帖子: double 函数 include 课程 
2011-06-27 16:52
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:2 
          这个程序太多的漏洞了。结构体初始化要给里面的变量全部赋值,平均分既然要根据八门课程分求则不能给出,就是不能初始化,你那样的初始化就是错误的,要一个一个用for循环赋值。fun函数中a是形参,怎么用STREC.s[i]这个东东呢?应该是a->s[i];求平均分加了之后再把除以八之后的值赋给a->ave就可以了。

2011-06-27 17:22
以中
Rank: 3Rank: 3
来 自:长沙
等 级:论坛游侠
帖 子:108
专家分:129
注 册:2010-4-13
收藏
得分:4 

#include <stdio.h>
#define   N   8
typedef  struct
{  
  char  num[10];
  double  s[N];
  double  ave;
  } STREC;
void  fun(STREC *a)
{
    int i,sum=0;
     for(i=0;i<N;i++)
       sum+=a->s[i];
     a->ave=sum/8;
}
main()
{
  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
  int  i;
  fun( &s );
  printf("The %s's student data:\n", s.num);
  for(i=0;i<N; i++)
  printf("%4.1f\n",s.s[i]);
  printf("\nave=%7.3f\n",s.ave);
}

道之所存,师之所存。
2011-06-27 18:15
nan1888
Rank: 2
等 级:论坛游民
帖 子:44
专家分:86
注 册:2011-6-19
收藏
得分:4 
#include <stdio.h>
#define   N   8
typedef  struct
{  
  char  num[10];
  double  s[N];
  double  ave;
  } STREC;
void  fun(STREC *a)
{
    int i,sum=0;
    for(i=0;i<N;i++)
    sum+=a->s[i];
    a->ave=sum/8;
}
main()
{
  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
  int  i;
  fun( &s );
  printf("The %s's student data:\n", s.num);
  for(i=0;i<N; i++)
  printf("%4.1f\n",s.s[i]);
  printf("\nave=%7.3f\n",s.ave);
  return 0;
}
2011-06-27 20:58
nan1888
Rank: 2
等 级:论坛游民
帖 子:44
专家分:86
注 册:2011-6-19
收藏
得分:0 
#include <stdio.h>
#define   N   8
typedef  struct
{  
  char  num[10];
  double  s[N];
  double  ave;
  } STREC;
void  fun(STREC *a)
{
    int i,sum=0;
    for(i=0;i<N;i++)
    sum+=a->s[i];
    a->ave=sum/8;
}
main()
{
  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
  int  i;
  fun( &s );
  printf("The %s's student data:\n", s.num);
  for(i=0;i<N; i++)
  printf("%4.1f\n",s.s[i]);
  printf("\nave=%7.3f\n",s.ave);
  return 0;
}
2011-06-27 21:15
快速回复:请大家帮我改一下这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047177 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved