| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 335 人关注过本帖
标题:各位高手帮忙看一下哪里错了,谢谢!
只看楼主 加入收藏
yvonne——ym
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2012-1-5
结帖率:100%
收藏
 问题点数:0 回复次数:0 
各位高手帮忙看一下哪里错了,谢谢!
题目:一个文本文件中存放着NBA火箭队员姚明的信息。每一行的数据及其含义是这样排列的(每一行数据均为场均值):

赛季    出场    时间    总篮板    助攻    盖帽    犯规    得分
08-09    77    33.6    9.9    1.8    1.9    3.3    19.7
07-08    55    37.2    10.8    2.3    2    3.1    22
06-07    48    33.8    9.4    2    2    3.3    25
05-06    57    34.2    10.2    1.5    1.6    3.4    22.3
04-05    80    30.6    8.4    0.8    2    3.7    18.3
03-04    82    32.8    9    1.5    1.9    3.3    17.5
02-03    82    29    8.2    1.7    1.8    2.8    13.5

写一个程序,把这些数据存储到一个结构体数组中。程序应该读到文件末尾,并且应该在最后保存姚明每一项的职业生涯统计数据。例如,要计算姚明职业生涯中的平均每场篮板数,就不能只是简单地将总篮板列的数据相加求平均,那会得到一个错误的数值9.4,而应该将每个赛季的出场时间乘以该赛季的总篮板数,求和之后再用总出场次数去除才能得到正确结果9.3。最后结果保留小数点后1位。职业生涯的统计数据附加在最后一行,程序运行结束后打开该文本文件检查内容是否完整。



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 7
struct yaoming                    //声明结构体yaoming
{
char season[10];
int GP;
float time;
float rebound;
float assist;
float block_shot;
float foul;
float score;
}yao[N],yao_total;                //定义结构体变量,存放赛季数据的yao[N]和存放综合数据的yao_total   

void save()                    //定义函数save,将输入的赛季数据存放至数据文件yao.dat中
{
FILE *fp;
int i;
if((fp=fopen("yaoming.dat","wb"))==NULL)
    {
    printf("cannot open file\n");
    return;
    }
for(i=0;i<N;i++)
    if(fwrite(&yao[i],sizeof(struct yaoming),1,fp)!=1)
        printf("file write error\n");
if(fwrite(&yao_total,sizeof(struct yaoming),1,fp)!=1)
    printf("file write error\n");
fclose(fp);
}

void print()                    //定义函数print,将文件中的数据打印出来
{
FILE *fp;
int i;
if((fp=fopen("yaoming.dat","rb"))==NULL)
    {
    printf("cannot open file\n");
    exit(0);
    }
for(i=0;i<N;i++)
    {
    fread(&yao[i],sizeof(struct yaoming),1,fp);
    printf("%s\t%d\t%f\t%f\t%f\t%f\t%f\t%f\n",yao[i].season,yao[i].GP,yao[i].time,yao[i].rebound,yao[i].assist,yao[i].block_shot,yao[i].foul,yao[i].score);
    }
fread(&yao_total,sizeof(struct yaoming),1,fp);
printf("%s\t%d\t%f\t%f\t%f\t%f\t%f\t%f\n",yao_total.season,yao_total.GP,yao_total.GP,yao_total.time,yao_total.rebound,yao_total.assist,yao_total.block_shot,yao_total.foul,yao_total.score);
fclose(fp);
}

int main()                    
{
int i,j,a=0;
float b=0.0,c=0.0,d=0.0,e=0.0,m=0.0,n=0.0;
char t;
printf("please enter data of yaoming:\n");
for(i=0;i<N;i++)                //输入姚明的赛季数据
    scanf("%s%d%f%f%f%f%f%f",yao[i].season,&yao[i].GP,&yao[i].time,&yao[i].rebound,&yao[i].assist,&yao[i].block_shot,&yao[i].foul,&yao[i].score);
for(j=0;j<N;j++)                //计算得出综合数据,存放在结构体变量yao_total中
    {
    a+=yao[i].GP;
    b+=yao[i].time;
    c+=yao[i].rebound*yao[i].time;
    d+=yao[i].assist*yao[i].time;
    e+=yao[i].block_shot*yao[i].time;
    m+=yao[i].foul*yao[i].time;
    n+=yao[i].score*yao[i].time;
    }
t=(char)N;
yao_total.season[0]=t;
yao_total.GP=a;
yao_total.time=b/N;
yao_total.rebound=c/a;
yao_total.assist=d/a;
yao_total.block_shot=e/a;
yao_total.foul=m/a;
yao_total.score=n/a;

save();                        //调用save函数
print();                    //调用print函数
return 0;
}

程序运行如下,非正常中止。
图片附件: 游客没有浏览图片的权限,请 登录注册


这是怎么回事,哪里错了呢?恳请各位大侠指教啊...谢谢!



搜索更多相关主题的帖子: 姚明 信息 文本文件 
2012-01-05 22:53
快速回复:各位高手帮忙看一下哪里错了,谢谢!
数据加载中...
 
   



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

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