#include<stdio.h>
#include<conio.h>
#include<string.h>
struct student
{
char num[100];
char name[100];
int math;
int C;
int english;
}person[10],min;
int main()
{
int i,j,minn,ii;
FILE *fp;
//
fp=fopen("c:\1.txt","w");
for(i=0;i<10;i++)
{
printf("%d student:\n",i);
printf("number:");
scanf("%s",person[i].num);
printf("name:");
scanf("%s",person[i].name);
printf("math:");
scanf("%d",&person[i].math);
printf("C:");
scanf("%d",&person[i].C);
printf("english:");
scanf("%d",&person[i].english);
fflush(stdin);
}
for(i=0;i<10;i++)
{
strcpy(min.name,person[i].name);
strcpy(min.num,person[i].num);
min.C=person[i].C;
min.english=person[i].english;
min.math=person[i].math;
minn=0;
for(j=i;j<10;j++)
{
if((person[j].math+person[j].C+person[j].english)<(min.C+min.english+min.math))
{
minn=j;
strcpy(min.name,person[j].name);
strcpy(min.num,person[j].num);
min.C=person[j].C;
min.english=person[j].english;
min.math=person[j].math;
}
}
for(j=minn;j>i;j--)
{
strcpy(person[j].name,person[j-1].name);
strcpy(person[j].num,person[j-1].num);
person[j].C=person[j-1].C;
person[j].english=person[j-1].english;
person[j].math=person[j-1].math;
}
strcpy(person[i].name,min.name);
strcpy(person[i].num,min.num);
person[i].C=min.C;
person[i].english=min.english;
person[i].math=min.math;
}
for(i=0;i<10;i++)
{
printf("number | name | math| C
| english\n");
printf("%s\t%s\t%d\t%d\t%d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
//fprintf(fp,"%s%s%d%d%d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
}
//fclose(fp);
getch();
return 0;
}指针有问题,但是框架好了,留点给你自己改啊,呵呵