Упорядочить записи по возрастанию номера рейса - C (СИ)

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

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

Помогите пожалуйста, упорядочить записи по возрастанию номера рейса к следующей программе:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct AEROFLOT {
    char CITY[30];
    int NUM;
    char TYPE[30];
    }AIR[10];
 
const int n=10;
 
int search(char city[30], AEROFLOT *AIR)
{
bool flag = false;
for (int i=0; i<n; i++)
{
 if(strcmp(AIR[i].CITY, city)==0)
    {
        printf("%d ", AIR[i].NUM);
        printf("%s\n", AIR[i].TYPE);
         flag= true;
    }
}
if (!flag)
printf("Vubachte. Nemae litaka v te misto\n");
}
 
void main()
{
char city[30];
AEROFLOT AIR[n];
 
strcpy(AIR[0].CITY, "Italy");
AIR[0].NUM=42;
strcpy(AIR[0].TYPE, "standart");
 
strcpy(AIR[1].CITY, "Kyiv");
AIR[1].NUM=15;
strcpy(AIR[1].TYPE, "charter");
 
strcpy(AIR[2].CITY, "Kryvyi Rih");
AIR[2].NUM=21;
strcpy(AIR[2].TYPE, "shvidko");
 
strcpy(AIR[3].CITY, "London");
AIR[3].NUM=56;
strcpy(AIR[3].TYPE, "standart");
 
strcpy(AIR[4].CITY, "Kyiv");
AIR[4].NUM=16;
strcpy(AIR[4].TYPE, "standart");
 
strcpy(AIR[5].CITY, "Dallas");
AIR[5].NUM=234;
strcpy(AIR[5].TYPE, "standart");
 
strcpy(AIR[6].CITY, "Rome");
AIR[6].NUM=52;
strcpy(AIR[6].TYPE, "shvidko");
 
strcpy(AIR[7].CITY, "Blefusku");
AIR[7].NUM=81;
strcpy(AIR[7].TYPE, "charter");
 
strcpy(AIR[8].CITY, "Kingstone");
AIR[8].NUM=67;
strcpy(AIR[8].TYPE, "standart");
 
strcpy(AIR[9].CITY, "Kamberra");
AIR[9].NUM=32;
strcpy(AIR[9].TYPE, "shvidko");
 
printf("VVedite gorod\n");
scanf("%s", city);

search(city,AIR);
getch();
}
Само задание такое: Описать структуру с именем AEROFLOT, которая имеет следующие поля: CITY - имя населенного пункта назначения, NUM - номер рейса, TYPE - тип самолета. Написать программу, которая отдельными функциями реализовывает след. действия: - ввод с клавиатуры данных в массив AIR, которая с N переменных типа AEROFLOT; - упорядочить записи по возрастанию номера рейса; - выводит на экран номера рейсов и типов самолета , которые вылетели в пункт назначения, имя которого совпало с именем, введенного с клавиатуры; если таких рейсов нету, то вывести соответствующее сообщение. Мне с этого осталось только упорядочить записи по возрастанию номера рейса.

Решение задачи: «Упорядочить записи по возрастанию номера рейса»

textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct AEROFLOT {
    char CITY[30];
    int NUM;
    char TYPE[30];
    }AIR[10];
 
const int n=10;
 
int search(char city[30], AEROFLOT *AIR)
{
bool flag = false;
for (int i=0; i<n; i++)
{
 if(strcmp(AIR[i].CITY, city)==0)
    {
        printf("%d ", AIR[i].NUM);
        printf("%s\n", AIR[i].TYPE);
         flag= true;
    }
}
if (!flag)
printf("Vubachte. Nemae litaka v te misto\n");
}
 
int main()
{
char city[30];
AEROFLOT AIR[n];
int i, min, x, j;
AEROFLOT BUF ;
 
strcpy(AIR[0].CITY, "Italy");
AIR[0].NUM=42;
strcpy(AIR[0].TYPE, "standart");
 
strcpy(AIR[1].CITY, "Kyiv");
AIR[1].NUM=15;
strcpy(AIR[1].TYPE, "charter");
 
strcpy(AIR[2].CITY, "Kryvyi Rih");
AIR[2].NUM=21;
strcpy(AIR[2].TYPE, "shvidko");
 
strcpy(AIR[3].CITY, "London");
AIR[3].NUM=56;
strcpy(AIR[3].TYPE, "standart");
 
strcpy(AIR[4].CITY, "Kyiv");
AIR[4].NUM=16;
strcpy(AIR[4].TYPE, "standart");
 
strcpy(AIR[5].CITY, "Dallas");
AIR[5].NUM=234;
strcpy(AIR[5].TYPE, "standart");
 
strcpy(AIR[6].CITY, "Rome");
AIR[6].NUM=52;
strcpy(AIR[6].TYPE, "shvidko");
 
strcpy(AIR[7].CITY, "Blefusku");
AIR[7].NUM=81;
strcpy(AIR[7].TYPE, "charter");
 
strcpy(AIR[8].CITY, "Kingstone");
AIR[8].NUM=67;
strcpy(AIR[8].TYPE, "standart");
 
strcpy(AIR[9].CITY, "Kamberra");
AIR[9].NUM=32;
strcpy(AIR[9].TYPE, "shvidko");
 
//printf("VVedite gorod\n");
//scanf("%s", city);
 
//search(city,AIR);
x = 0;
 
for ( i = 0; i <= n - 1; i++ )
{   
    min = AIR[i].NUM;
    for ( j = i + 1; j <= n - 1; j++  )
    {
    if ( AIR[j].NUM < min )
    { 
      min = AIR[j].NUM;
      x = j;
     }
     } 
     BUF = AIR[x];
     AIR[x] = AIR[i];
     AIR[i] = BUF;
 }
 
 for ( i = 0; i < n; i++ )
 {
     printf ( "%d  %s  %s \n", AIR[i].NUM, AIR[i].CITY, AIR[i].TYPE);
     }
 
getch();
}

Объяснение кода листинга программы

В этом коде представлен некоторый набор структур данных, состоящий из названий городов, номеров рейсов и типов перелетов. Сначала объявляется структура AEROFLOT, которая содержит три поля: CITY (название города), NUM (номер рейса) и TYPE (тип перелета). Затем создается массив AIR из 10 структур AEROFLOT. Далее, функции main() и search() объявляются. В функции main() создается пустой массив city для ввода названия города, а затем заполняется массив AIR данными о рейсах. После этого происходит сортировка массива AIR по номеру рейса с помощью алгоритма сортировки выбором. В конце функции main() происходит печать отсортированного массива AIR. Код также включает функцию search(), которая выполняет поиск в отсортированном массиве AIR по названию города. Однако, в данном коде функция search() не вызывается.

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


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

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

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