Сортировка структуры в алфавитном порядке - неудача при выводе результатов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Спасите блондинку Помогите пожалуйста найти ошибку в программе Суть задачи: создать структуру данных, которая включает: 1) Ф.И.О. абитуриентов, 2) Пол 3) Специальность 4) Оценки по 3-м вступительным экзаменам И все это дело нужно вывести на экран в алфавитном порядке (сортировка по Ф.И.О.) Вот что попробовала написать:
#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();
}
В результате, вместо необходимой структуры из 5-ти абитуриентов, в качестве результатов выводятся 5 четырехзначных чисел Например: 1433 1454 1475 1496 1517 ЧТо делать - ума не приложу

Решение задачи: «Сортировка структуры в алфавитном порядке - неудача при выводе результатов»

textual
Листинг программы
scanf("%d", &ABIT[i].EXAM[m]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы