Сортировка структуры в алфавитном порядке - неудача при выводе результатов - C (СИ)
Формулировка задачи:
Здравствуйте!
Спасите блондинку
Помогите пожалуйста найти ошибку в программе
Суть задачи: создать структуру данных, которая включает:
1) Ф.И.О. абитуриентов, 2) Пол 3) Специальность 4) Оценки по 3-м вступительным экзаменам
И все это дело нужно вывести на экран в алфавитном порядке (сортировка по Ф.И.О.)
Вот что попробовала написать:
В результате, вместо необходимой структуры из 5-ти абитуриентов, в качестве результатов выводятся 5 четырехзначных чисел
Например:
1433 1454 1475 1496 1517
ЧТо делать - ума не приложу
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 5
/* Создаём структуру, которая включает сведения о фамилии, поле, специальности и экзаменационных оценках абитуриента*/
struct ABITURIENT
{
char NAME[N];
char GENDER[N];
char SPEC[N];
int EXAM[3];
}
ABIT[N];
/*Ввод данных о каждом абитуриенте*/
void vvod()
{
int i, m;
for (i=0; i<N; i++)
{
printf("Vvedite dannye %d-go abiturienta\n", i+1);
printf("Familia i inicialy: ");
scanf("%s", ABIT[N].NAME);
printf("Pol: ");
scanf("%s", ABIT[N].GENDER);
printf("Specialnost: ");
scanf("%s", ABIT[N].SPEC);
for (m=0; m<3; m++) { /*Экзаменациооные оценки в виде массива из 3-х значений*/
printf("Ocenka za %d-j ekzamen\n", m+1);
scanf("%d", ABIT[N].EXAM); }
}
}
/*Сортировка методом пузырька в алфавитном порядке*/
void sort()
{
int j,k;
ABITURIENT p;
for(j=0; j<N-1; j++){
for(k=j+1; k<N; k++){
if(strcmpi(ABIT[j].NAME,ABIT[k].NAME)>0){
p=ABIT[j];
ABIT[j]=ABIT[k];
ABIT[k]=p;
}
}
}
}
void main()
{
clrscr();
vvod();
sort();
/*Попытка вывести отсортированные результаты на экран, закончившаяся неудачей:(((*/
int z;
for (z=0; z<N; z++){
printf("%s %s %s %d",ABIT[z].NAME,ABIT[z].GENDER,ABIT[z].SPEC,ABIT[z].EXAM);}
getch();
}Решение задачи: «Сортировка структуры в алфавитном порядке - неудача при выводе результатов»
textual
Листинг программы
scanf("%d", &ABIT[i].EXAM[m]);