标题:文件保存
只看楼主
jiaoyc
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-12-22
 问题点数:0 回复次数:2 
文件保存
下面的程序为什么在64位运行时会出现图片上的错误,而在32位上运行没有这种问题,我的系统是64位,怎么解决呢?

#include <stdio.h>
FILE *fp2;
struct student
{
    long int num;         //声明有名结构体
    char name[20];        //学生名字
    float chinese;        //语文成绩
    float math;           //数学成绩
}student[100],stu[100];   //一批学生,数量较大,定义数组student,stu各有100个元素
void main()
{fp2=fopen("d:\\学生.out","w");
     char star[]={"****************************************"};
    char message1[]={"           1--------------输入信息"};
    char message2[]={"           2--------------成绩排序"};
    char message3[]={"           3--------------保存"};
    puts (star);
    puts (message1);
    puts (message2);
    puts (message3);
    puts (star);
    int a,j,i,n;
    float av,average[100];   //平均分
    printf("请输入上述编号:\n");
    scanf("%d",&a);
    //printf("a=%d\n",a);
    if(a==1)           //输入学生信息
    {
        printf("请输入学生人数\n");
        scanf("%d",&n);
        printf("学号        姓名      语文成绩 数学成绩\n");
        for(i=0;i<n;i++)
        {
            scanf("%ld %s %f %f",&student[i].num,&student[i].name,&student[i].chinese,&student[i].math);
            //printf("%ld %s %f %f",student[i].num,student[i].name,student[i].chinese,student[i].math);
        }
    }
    printf("请输入上述编号\n");
    scanf("%d",&a);
    if (a==2)          //计算平均分和排序
    {
        printf("学号        姓名      语文成绩 数学成绩 平均成绩\n");
        for (i=0;i<n;i++)     //计算平均分
        {
            average[i]=(student[i].chinese+student[i].math)/2;
            printf("%ld %s %f %f %f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,average[i]);
        }
        printf("学号        姓名      语文成绩 数学成绩 平均成绩\n");
        //fprintf(fp2,"学号        姓名      语文成绩 数学成绩 平均成绩\n");
        for(j=0;j<n;j++)      //排序,从大到小
            for(i=0;i<n-j;i++)
                if(average[i]<average[i+1])
                {
                    av=average[i],stu[i]=student[i];
                    average[i]=average[i+1],student[i]=student[i+1];
                    average[i+1]=av,student[i+1]=stu[i];
                    //printf("%d\n",average[i]);
                }
                for(i=0;i<n;i++)
                    printf("%ld %s %f %f %f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,average[i]);
                //fprintf(fp2,"%ld %s %f %f %f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,average[i]);
        
    }
    printf("请输入上述编号\n");
    scanf("%d",&a);
    if(a==3)                     //文件保存
        for(i=0;i<n;i++)
            //printf("%ld %s %f %f %f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,average[i]);
        fprintf(fp2,"学号        姓名      语文成绩 数学成绩 平均成绩\n");
        fprintf(fp2,"%ld %s %f %f %f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,average[i]);
        fclose(fp2);
}
搜索更多相关主题的帖子: long include 结构体 元素 
2012-12-22 11:32
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
得分:0 
报错提示的很清楚啊,错误在56行,str != NULL
2012-12-22 11:45
jiaoyc
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-12-22
得分:0 
回复 2楼 crystall
还是不懂啊,请详解
2012-12-22 16:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-392935-1-1.html




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

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