部分代码:
#include<stdio.h>
#include<stdlib.h>
int main()
#define N 3
{
char a[N][5];
int b[N][5],n,c[N]={0};
void input(char a[N][5],int b[N][5]);
void aver(char a[N][5],int b[N][5],int c[N]);
input(a,b);
printf("查看平均分请输入“1”\n查看均分排序请输入“2”\n查看分数段人数统计请按“3”\n查看单科最高分请输入“4”\n查看指定学生成绩请按“5”\n");
scanf("%d",&n);
if(n==1)
{
printf("平均分如下:\n");
aver(a,b,c);
}
else
return 0;
}
void input(char a[N][5],int b[N][5])
{
FILE * fp;
int i,j,x;
if((fp=fopen("C:\\Users\\lenovo\\Desktop\\C语言\\chengji.dat","r"))==NULL)
{
printf("can't open the file\n");
exit(0);
}
for(i=0;i<N;i++)
{
fgets(a[i],5,fp);
printf("%s",a[i]);
for(j=0;j<5;j++)
{
fscanf(fp,"%d",&b[i][j]);
printf("%d ",b[i][j]);
}
putchar('\n');
}
}
void aver(char a[N][5],int b[N][5],int c[N])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<4;j++)
{
c[i]+=b[i][j+1]/4;
}
printf("%d %d",b[i][0],c[i]);
putchar('\n');
}
}
输入如图
出现那个-858993460 什么的
求解答
我刚知道为什么了,,因为我在文本里的数据是一行一行的 然后读取字符串的命令读了空白的地方,什么原理我不知道,,不过我把第二行的东西接在第一行 就正确了
追答加油
sjr 13005005 100 100 100 100
xbd 14071104 99 99 99 99
lwq 14071108 88 88 88 88
这样的一个文本文件 我把后缀改了。dat