Упорядочить записи по возрастанию номера рейса - 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(); }
Решение задачи: «Упорядочить записи по возрастанию номера рейса»
#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() не вызывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д