求大家帮我看看这个程序哪里出问题了,只能输入几个。。
求大家帮我看看这个程序哪里出问题了,只能输入几个。。#include <stdio.h>
#define SIZE 5
struct student //定义结构体
{
int ID; //学号
char name[20]; //姓名
int math_marks; //数学成绩
int computer_marks; //计算机成绩
int english_marks; //英语成绩
int average;
};
void ShellSort(struct student a[],int N)//希尔排序
{
struct student t;
int i,j,gap;
for (gap=N/2;gap>0;gap=gap/2)
{
for(i=gap;i<=N;i++)
// for(i=gap+1;i<=N;i++)
{
j=i-gap;
while(j>=0)
{
if(a[j].average>a[j+gap].average)
{
t=a[j];
a[j]=a[j+gap];
a[j+gap]=t;
j=j-gap;
}
else break;
}
}
}
}
int main()
{
struct student a[SIZE];
// int a[] = {45,65,11,21,36,7,98,100,73,61};
int i;
for(i=0;i<SIZE;i++)//输入学生信息
{
printf("请输入第%d个学生的学号",i+1);
scanf("%d",&a[i].ID);
printf("请输入第%d个学生的姓名",i+1);
scanf("%s",&a[i].name);
printf("请输入第%d个学生的数学成绩",i+1);
scanf("%d",&a[i].math_marks);
printf("请输入第%d个学生的计算机成绩",i+1);
scanf("%d",a[i].computer_marks);
printf("请输入第%d个学生的英语成绩",i+1);
scanf("%d",&a[i].english_marks);
printf("请输入第%d个学生的平均分",i+1);
scanf("%d",&a[i].average);
}
ShellSort(a,SIZE);
for(i=0;i<SIZE;i++)
{
printf("%d,%s,%d,%d,%d,%d",a[i].ID,a[i].name,a[i].math_marks,a[i].computer_marks,a[i].english_marks,a[i].average);
}
return 0;
}