#2
Susake2013-06-09 02:55
程序代码: #include <stdio.h> #define SIZE 4 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; } 输入少了& |
求大家帮我看看这个程序哪里出问题了,只能输入几个。。
#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;
}