| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 182 人关注过本帖
标题:结构体问题
只看楼主 加入收藏
奕秋
Rank: 2
来 自:开封
等 级:论坛游民
帖 子:4
专家分:16
注 册:2011-3-19
结帖率:0
收藏
 问题点数:0 回复次数:1 
结构体问题
# include <stdio.h>
# define M 10
typedef struct
{  
  char num [10];
  double s;
}SCORE;
double fun(SCORE *c,SCORE *l,int *n)
{
  int i,j=0;
  double aver=0.0;

  for(i=0; i<M; i++)
    aver+=c[i].s;
  aver/=M;
  for(i=0; i<M; i++)
    if(c[i].s<=aver)
    {
      *(l+j)=c[i];
      j++;
    }
    *n=j;
    return aver;
}
main ()
{
  SCORE stu[M]={{"03",76},{"02",69},{"04",85},{"01",91},{"07",72},{"08",64},{"06",87},{"09",60},{"11",79},{"12",73}};
  SCORE low [M],t;
  FILE *out ;
  int i,j,n;
  double ave;
  ave=fun(stu,low,&n);
  printf("The %d student data which is lower than %7.3f:\n",n,ave);
  for(i=0;i<n;i++)
    printf("%s %4.1f\n",low[i].num,low[i].s);
  printf("\n");
  out=fopen("outfile.dat","w");
  fprintf(out,"%d\n%7.3f\n",n,ave);
  for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
      if(low[i].s<low[j].s)
      {
        t=low[i];
        low[i]=low[j];
        low[j]=t;
      }
  for(i=0;i<n;i++)
    fprintf(out,"%4.1f\n",low[i].s);
  fclose(out);
}

谁能帮我解释一下红色字体中c[i]为什不能换成c[i].s?



对不住,现在真的没分了。
搜索更多相关主题的帖子: include double return 结构体 
2011-03-23 14:50
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
收藏
得分:0 
*(l+j)即l[j]、c[i]  是SCORE类型
c[i].s是double类型

=两边类型最好一致  编译器无法进行double到SCORE的隐式转换
2011-03-23 15:40
快速回复:结构体问题
数据加载中...
 
   



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

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