Сортировка структуры в алфавитном порядке - неудача при выводе результатов - 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]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д