我制作了程序,扫描输入的学生和有关他们的信息,并从中制作结构。我需要按出生年份和姓氏安排这些入学的学生。我不知道从哪里开始也许你可以给我一些建议。
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct mon
{
char name[15]; /* vārds*/
char lname[15]; /* uzvārds*/
int day,month,year; /* datums*/
char gender[15]; /* dzimums*/
};
int main(void)
{
struct mon mm[5];
int n; /* elementu skaits masīvā*/
int i, j;
for (n=0; n<2; n++)
{
printf("%d. Enter: name, gender, date, gender >", n+1);
scanf("%s",mm[n].name);
if (!strcmp(mm[n].name,"***")) break;
scanf("%s",mm[n].lname);
if (!strcmp(mm[n].lname," ,?!")) break;
scanf("%d/%d/%d", &mm[n].day, &mm[n].month, &mm[n].year);
scanf("%s",mm[n].gender);
if (!strcmp(mm[n].gender,"***")) break;
}
printf("-------------------------------------------------------------\n");
printf("| Student List |\n");
printf("|-------------------------------------------------------------|\n");
printf("| Name | Surname | Date | Gender |\n");
printf("|---------|---------|-------------|---------|\n");
for (i=0; i<n; i++)
printf("| %7s | %7s | %d-%d-%d | %7s |\n", mm[i].name,mm[i].lname,mm[i].day, mm[i].month, mm[i].year,mm[i].gender);
getch();
return 0;
}
答案 0 :(得分:0)
最佳选择,阅读qsort()
并使用它。
第二选择:按
排序int sorted;
do {
sorted = 1;
for (i=1; i<n; i++) {
if (mm[i-1].year > mm[i].year) {
struct mon temp;
temp = mm[i-1];
mm[i-1] = mm[i];
mm[i] = temp;
sorted = 0;
}
}
} while (!sorted);
这只按年份排序,留下姓氏部分供OP添加。