鱼C论坛

 找回密码
 立即注册
查看: 2433|回复: 4

结构体 将数据存入文件

[复制链接]
发表于 2021-3-29 21:10:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目是输入是个学生的姓名和成绩 按照成绩排序 算平均值 然后存入文件
下面是代码开头的一部分
带“****”的一行 devcpp报错“unknown type name'student'”.
student 我定义的是结构体
希望大神可以帮忙看看为什么报错。


#include <stdio.h>
struct student
{
        char name[20];
        float mathScore;
};
void input(student score[],int n);//录入学生信息              ****
void sort(student score[],int n);//按数学成绩排序
void aver(student score[],int n);//学生的数学成绩平均分
void createFile(FILE *fp);//创建存储数据的文件
void save(student score[],int n,FILE *fp)

const int n=10;//输入10个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-29 21:11:59 From FishC Mobile | 显示全部楼层
struct student score[]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-29 21:34:02 | 显示全部楼层

改完以后还是有问题
[Error] expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-29 21:34:32 | 显示全部楼层
全部代码
#include <stdio.h>
struct Date
{
        int year,month,day;
};
struct student
{
        char name[20];
        float mathScore;
};
void input(student score[],int n);//录入学生信息
void sort(student score[],int n);//按数学成绩排序
void aver(student score[],int n);//学生的数学成绩平均分
void createFile(FILE *fp);//创建存储数据的文件
void save(student score[],int n,FILE *fp)

const int n=10;//输入10个数

int main()
{
        FILE *fp;
        student str[n];
        input(str,n);
        sort(str,n);
        output(str,n);
        createFile(fp);
        save(str,n,fp);
}

void input(student score[],int n)
{
        int i;
        struct student score[10];
        for(i=0;i<10;i++)//从键盘输入10个学生的姓名和分数
                scanf("%s%f",&score[i].name,&score[i].mathScore);
}

void sort(student score[],int n)
{
        int j;
        struct student t;
        for(i=0;i<9;i++)
        {
                for(j=9;j>i;j--)
                {
                        if(score[i].mathScore>score[j].mathScore)
                        {
                        t=score[j];
                        score[j]=score[i];
                        score[i]=t;
                        }
                }
        }
}

void aver(student score[],int n)
{
        float aver,sum=0;
        for(i=0;i<10;i++)
        {
                sum=sum+score[i].mathScore;
        }
        aver=sum/10;
}

void createFile(FILE *fp)
{
        fp=fopen("student score","w");
        if(!fp)
        {
                printf("file open faile!");
                exit(0);
        }
        fprintf(fp,"%s                %s","姓名","成绩");
        fclose(fp);
        printf("File created successfully!\n");
}

void save(student score[],int n;FILE *fp)
{
        fp=fopen("student score","a");
        if(!fp)
        {
                printf("file open faile!");
                exit(0);
        }
        for(i=0;i<10;i++)
        {fprintf("%s\t%.2f\n",score[i].name,score[i].mathScore);}
        fprintf("the average score=%.2f\n",aver);
        fclose(fp);
        printf("data save successfully!\n");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-6 02:01:17 | 显示全部楼层
你这错误实在是太多了
1.fprintf参数错误,
2.main函数中的fp在未初始化的状态下直接将其当做参数传递给函数
3.结构体要么定义的时候加typedef,要么声明变量的时候加入sturct
4.for循环中用到的i变量在函数中未声明
5.exit(0),使用这个函数必须包含头文件stdlib.h
6.用#define N 10 代替 const int N = 10;
7.ouput函数功能没有实现


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表