编程实现:
对学生成绩进行管理:
包含读入、修改、排序、输出、保存功能。
(1)读入:将所给"chengji.txt"文件中的所有学生信息读入到结构体数组中。
每位学生信息包括:学号、姓名及5门课成绩。
(2)修改:将所有学生第3门课成绩都添加5分。
(3)排序:按总成绩从高分到低分排序。
(4)输出:将所有学生信息输出到屏幕上,包括学生的总成绩。
(5)保存:将学生最终成绩(包括总成绩)保存在"最终成绩.txt"文件中。编程实现:
对学生成绩进行管理:
包含读入、修改、排序、输出、保存功能。
(1)读入:将所给"chengji.txt"文件中的所有学生信息读入到结构体数组中。
每位学生信息包括:学号、姓名及5门课成绩。
(2)修改:将所有学生第3门课成绩都添加5分。
(3)排序:按总成绩从高分到低分排序。
(4)输出:将所有学生信息输出到屏幕上,包括学生的总成绩。
(5)保存:将学生最终成绩(包括总成绩)保存在"最终成绩.txt"文件中。
#include <stdio.h>
#include <string.h>
#define N 100
#define M 5
struct student
{
int xh;
char xm[7];
int cj[M];
int zf;
}a[N],t;
int ldj=0;
FILE *fp;
int shuru();
int xiugai();
int paixu();
int shuchu();
int baocun();
int main()
{
shuru();
xiugai();
paixu();
shuchu();
baocun();
}
int shuru()
{
fp=fopen("chengji.txt","r");
int n=0,m;
while(feof(fp)==0)
{
fscanf(fp,"%d\t%s",&a[n].xh,&a[n].xm);
for(m=0;m<M;m++)
fscanf(fp,"\t%d",&a[n].cj[m]);
fscanf(fp,"\n");
n++;
}
ldj=n;
fclose(fp);
}
int xiugai()
{
int m,n;
for(n=0;n<ldj;n++)
a[n].cj[2]=a[n].cj[2]+5;
}
int paixu()
{
int m,n;
for(n=0;n<ldj;n++)
{
a[n].zf=0;
for(m=0;m<M;m++)
a[n].zf=a[n].zf+a[n].cj[m];
}
for(n=0;n<ldj;n++)
for(m=n+1;m<ldj;m++)
if(a[m].zf>a[n].zf)
{
t=a[m];
a[m]=a[n];
a[n]=t;
}
}
int shuchu()
{
int n,m;
for(n=0;n<ldj;n++)
{
printf("%d\t%s\t",a[n].xh,a[n].xm);
for(m=0;m<M;m++)
{
printf("%d\t",a[n].cj[m]);
}
printf("%d\n",a[n].zf);
}
}
int baocun()
{
int n,m;
fp=fopen("最终成绩.txt","w");
for(n=0;n<ldj;n++)
{
fprintf(fp,"%d\t%s\t",a[n].xh,a[n].xm);
for(m=0;m<M;m++)
{
fprintf(fp,"%d\t",a[n].cj[m]);
}
fprintf(fp,"%d\n",a[n].zf);
}
fclose(fp);
}
数组名就是地址 加什么&符
给你改好了,问题比较多,函数返回值没返回,此外还要建文件。运行截图如下,望采纳,有问题可以问题。
#include <stdio.h>
#include <string.h>
#define N 100
#define M 5
struct student {
int xh;
char xm[7];
int cj[M];
int zf;
} a[N], t;
int ldj = 0;
FILE* fp;
int shuru();
int xiugai();
int paixu();
int shuchu();
int baocun();
int main() {
shuru();
xiugai();
paixu();
shuchu();
baocun();
}
int shuru() {
fp = fopen("chengji.txt", "r");
int n = 0, m;
while (feof(fp) == 0) {
fscanf(fp, "%d\t%s", &a[n].xh, a[n].xm);
for (m = 0; m < M; m++)
fscanf(fp, "\t%d", &a[n].cj[m]);
fscanf(fp, "\n");
n++;
}
ldj = n;
fclose(fp);
return 0;
}
int xiugai() {
int m, n;
for (n = 0; n < ldj; n++)
a[n].cj[2] = a[n].cj[2] + 5;
return 0;
}
int paixu() {
int m, n;
for (n = 0; n < ldj; n++) {
a[n].zf = 0;
for (m = 0; m < M; m++)
a[n].zf = a[n].zf + a[n].cj[m];
}
for (n = 0; n < ldj; n++)
for (m = n + 1; m < ldj; m++)
if (a[m].zf > a[n].zf) {
t = a[m];
a[m] = a[n];
a[n] = t;
}
return 0;
}
int shuchu() {
int n, m;
for (n = 0; n < ldj; n++) {
printf("%d\t%s\t", a[n].xh, a[n].xm);
for (m = 0; m < M; m++) {
printf("%d\t", a[n].cj[m]);
}
printf("%d\n", a[n].zf);
}
return 0;
}
int baocun() {
int n, m;
fp = fopen("最终成绩.txt", "w");
for (n = 0; n < ldj; n++) {
fprintf(fp, "%d\t%s\t", a[n].xh, a[n].xm);
for (m = 0; m < M; m++) {
fprintf(fp, "%d\t", a[n].cj[m]);
}
fprintf(fp, "%d\n", a[n].zf);
}
fclose(fp);
return 0;
}
换成英文路径