我有一个c语言程序 还没写完 求高手帮忙找错误 急急急!!!

2024-12-20 18:26:20
推荐回答(4个)
回答1:

#include 

#include 

#include 

#define max 1000

void table()

{

printf("/*********************************************/\n");

printf("/**********欢迎登陆学生成绩查询系统***********/\n");

printf("/*********************************************/\n");

}

struct sdu

{

char name[8];

char id[8];

int chinese;

int math;

int english;

int average;

int total;

};

struct sdu students[max];/**********学生的数据***********/

int a;/*************实际人数*****************************/

void input()

{

int i;

int b;

printf("学生的人数:");

scanf("%i",&a);

b=a+1;

for(i=1;i

{

printf("\n输入学生学号:");

scanf("%s",students[i].id);

printf("\n输入学生姓名:");

scanf("%s",students[i].name);

printf("\n输入学生的语文成绩:");

scanf("%d",&students[i].chinese);

printf("\n输入学生的数学成绩:");

scanf("%d",&students[i].math);

printf("\n输入学生的英语成绩:");

scanf("%d",&students[i].english);

students[i].total=(students[i].chinese+students[i].math+students[i].english);

students[i].average=students[i].total/3;

}

}/*********学生成绩的录入***************/

void sort(struct sdu array[],int n)

{

int i;

int j;

for(i=0;i

{

for(j=0;j

{

if  (array[i].total> array[j+1].total)

{

int d= array[i].total;

array[i].total=array[j+1].total;

array[j+1].total=d;

}

}

}

printf("成绩排名:\n");

for(i=0;i

{

printf("%d\n",array[i+1]);

}

}

void fenbu(struct sdu array[],int n)

{

int i,sum1=0,sum2=0,sum3=0,sum4=0;

for(i=0;i

{

if (array[i].average>89)

sum1=sum1+1;

if (array[i].average>74)

sum2=sum2+1;

if (array[i].average>59)

sum3=sum3+1;

if (array[i].average>0)

sum4=sum4+1;

}

printf("优秀的人数:\n");

printf("%d\n",sum1);

printf("良的人数:\n");

printf("%d\n",sum2);

printf("及格人数:\n");

printf("%d\n",sum3);

printf("不及格人数:\n");

printf("%d\n",sum4);

}

void unreach(struct sdu array[],int n)

{

}

void main()

{

table();

input();

sort(students, a);

fenbu(students, a);

}

//想帮你弄完的,但是有些地方弄不明白你的思想,而且也没有那么多时间帮你弄这个。现在帮你改了一下,可以运行了,但是结果不准确。你有一个空函数,不知道你要干什么用的。看你写这程序,应该是刚刚学会编程吧,。不过应该比我当年强了,没事的。多编些就会了。

回答2:

修改后的部分程序:
void input()
{
int i;
printf("学生的人数:");
scanf("%d",&a);
for(i=0;i {
printf("\n输入学生学号:");
scanf("%s",students[i].id);
printf("\n输入学生姓名:");
scanf("%s",students[i].name);
printf("\n输入学生的语文成绩:");
scanf("%d",&students[i].chinese);
printf("\n输入学生的数学成绩:");
scanf("%d",&students[i].math);
printf("\n输入学生的英语成绩:");
scanf("%d",&students[i].english);
students[i].total=(students[i].chinese+students[i].math+students[i].english);
students[i].average=students[i].total/3;
}
}

void sort(struct sdu array[],int n)
{
int i;
int j;
for(i=0;i {
for(j=0;j {
if (array[j].total< array[j+1].total)
{
int d= array[j].total;
array[j].total=array[j+1].total;
array[j+1].total=d;
}
}
}
printf("成绩排名:\n");
for(i=0;i {
printf("%d ",array[i]);
}
printf("\n");
}

void fenbu(struct sdu array[],int n)
{
int i,sum1=0,sum2=0,sum3=0,sum4=0;

for(i=0;i {
if array[i].average>89 && array[i].average<=100
sum1=sum1+1;
else if array[i].average>74
sum2=sum2+1;
else if array[i].average>59
sum3=sum3+1;
else
sum4=sum4+1;
}
. . . . . .
}

回答3:

#include
#include
#include
#define MAX 1000 //与库中定义的max宏冲突
void table()
{
printf("/*********************************************/\n");
printf("/**********欢迎登陆学生成绩查询系统***********/\n");
printf("/*********************************************/\n");
}
struct sdu
{
char name[8];
char id[8];
int chinese;
int math;
int english;
int average;
int total;
};
struct sdu students[MAX];/**********学生的数据***********/
int a;/*************实际人数*****************************/
void input()
{
int i;
int b;
b=a+1;
printf("学生的人数:");
scanf("%d",&a);
for(i=1;i {
printf("\n输入学生学号:");
scanf("%s",students[i].id);
printf("\n输入学生姓名:");
scanf("%s",students[i].name);
printf("\n输入学生的语文成绩:");
scanf("%d",&students[i].chinese);
printf("\n输入学生的数学成绩:");
scanf("%d",&students[i].math);
printf("\n输入学生的英语成绩:");
scanf("%d",&students[i].english);
students[i].total=(students[i].chinese+students[i].math+students[i].english);
students[i].average=students[i].total/3;
}
}/*********学生成绩的录入***************/
void sort(struct sdu array[],int n)
{
int i;
int j;

int d; //添加定义

for(i=0;i {
for(j=0;j {
if(array[i].total> array[j+1].total)
{
d= array[i].total;
array[i].total=array[j+1].total;
array[j+1].total=d;
}
}
}
printf("成绩排名:\n");
for(i=0;i {
printf("%d",array[i+1]);
}
}
void fenbu(struct sdu array[],int n)
{
int i,sum1,sum2,sum3,sum4;

for(i=0;i {
if (array[i].average>89) //加括号
sum1=sum1+1;
if( array[i].average>74)
sum2=sum2+1;
if (array[i].average>59)
sum3=sum3+1;
if (array[i].average>0)
sum4=sum4+1;
}
printf("优秀的人数:\n");
printf("%d",sum1);
printf("良的人数:\n");
printf("%d",sum2);
printf("及格人数:\n");
printf("%d",sum3);
printf("不及格人数:\n");
printf("%d",sum4);
}
void unreach(struct sdu array[],int n)
{

}

回答4:

学习一下。