jw010703 发表于 2021-3-29 21:10:44

结构体 将数据存入文件

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


#include <stdio.h>
struct student
{
        char name;
        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个数

赚小钱 发表于 2021-3-29 21:11:59

struct student score[]

jw010703 发表于 2021-3-29 21:34:02

赚小钱 发表于 2021-3-29 21:11
struct student score[]

改完以后还是有问题
expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

jw010703 发表于 2021-3-29 21:34:32

全部代码
#include <stdio.h>
struct Date
{
        int year,month,day;
};
struct student
{
        char name;
        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;
        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;
        for(i=0;i<10;i++)//从键盘输入10个学生的姓名和分数
                scanf("%s%f",&score.name,&score.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.mathScore>score.mathScore)
                        {
                        t=score;
                        score=score;
                        score=t;
                        }
                }
        }
}

void aver(student score[],int n)
{
        float aver,sum=0;
        for(i=0;i<10;i++)
        {
                sum=sum+score.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.name,score.mathScore);}
        fprintf("the average score=%.2f\n",aver);
        fclose(fp);
        printf("data save successfully!\n");
}

warning3 发表于 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函数功能没有实现


页: [1]
查看完整版本: 结构体 将数据存入文件