| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 349 人关注过本帖
标题:求解惑,为什么出现这样的错误
只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求解惑,为什么出现这样的错误
今天写了段代码
程序代码:
#include<stdio.h>
#include<conio.h>//预处理
struct {
    int num;
    char name[10];
    int achievement[3];
    float average;
    }stu[5];//定义结构体数组
void build(void){//输入结构体数据函数
    int i;
    for(i=0;i<5;i++){
        printf("请输入第%d学生的号码:",i+1);
        fflush(stdin);
        scanf("%d",&stu[i].num);
        printf("请输入学生姓名:");
        fflush(stdin);
        scanf("%s",stu[i].name);
        printf("请输入语文成绩:");
        fflush(stdin);
        scanf("%d",&stu[i].achievement[0]);
        printf("请输入数学成绩:");
        fflush(stdin);
        scanf("%d",&stu[i].achievement[1]);
        printf("请输入英语成绩:");
        fflush(stdin);
        scanf("%d",&stu[i].achievement[2]);
        stu[i].average=((float)stu[i].achievement[0]+(float)stu[i].achievement[1]+(float)stu[i].achievement[2])/3;
         }//计算平均分
    return;}
void print(void){//输出函数
    int i;
    printf("=================学生信息====================\n");
    printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");
    for(i=0;i<5;i++)
        printf("%88s%8%8d%8d%8f\n",stu[i].num,stu[i].name,stu[i].achievement[0],stu[i].achievement[1],stu[i].achievement[2]);
    return;}
void disk(void){//储存函数
    int i;
    FILE *fp;
    if((fp=fopen("F:\\vc\\lianxi.txt","w"))==NULL){
        printf("文件建立失败");getch();return ;}//判断是否打开文件
    for(i=0;i<5;i++)
        fscanf(fp,"%d,%s,%d,%d,%d,%f\n",&stu[i].num,stu[i].name,&stu[i].achievement[0],&stu[i].achievement[1],&stu[i].achievement[2],&stu[i].average);//件结构体写入磁盘
    fclose(fp);
    return;
}
void main(void){//主函数
    build();
    print();
    disk();
    return;}
这个代码所要实现的目的就是输入5个学生的信息,然后显示到屏幕上,在存入一个原来没有需要系统建立的txt文档,但是在编译后的运行.exe文件时出现了问题,找不到原因,求大家帮忙,
这是出错时的截图
图片附件: 游客没有浏览图片的权限,请 登录注册

其实第一次运行没有这样的情况,但是建立的txt文件时空的,我就在运行了一遍,就出现了这种情况
搜索更多相关主题的帖子: color average 今天 
2012-12-20 10:45
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
printf("%88s%8%8d%8d%8f\n",stu[i].num,stu[i].name,stu[i].achievement[0],stu[i].achievement[1],stu[i].achievement[2]);
检查下

Go Go Go
2012-12-20 10:47
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:10 
修改的地方:
stu[i].average=(stu[i].achievement[0]+stu[i].achievement[1]+stu[i].achievement[2])*1.00/3;
保留小数两位

printf("%d\t%s\t%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].name,stu[i].achievement[0],stu[i].achievement[1],stu[i].achievement[2],stu[i].average);

好像就这两处

~~我的明天我知道~~
2012-12-20 11:11
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
已经解决,谢谢了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-20 11:21
快速回复:求解惑,为什么出现这样的错误
数据加载中...
 
   



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

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