Отсортировать страны по спаданию количества населения - C (СИ)
Формулировка задачи:
Здание:
Есть страна о которой сказано 1)название 2)население 3) площадь. Нужно отсортировать по спаданию количества населения.
#include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> struct kraina { char kraina[100]; int naselennia; int ploshcha [200]; }; int main(void) { struct kraina Kr[100], char c, char s,int i, int n, int tmp, nKr = 0; do { printf("Vvedit nazvy krainu "); gets(Kr[nKr].kraina); printf("Vvedit naselennia "); scanf("%d", & Kr[nKr].naselennia); getchar(); printf("Vvedit ploshchy "); scanf("%d", & Kr[nKr].ploshcha); nKr++; printf("continue?(y/n) or sort?(s/n)"); scanf("%c", &c); getchar(); scanf("%s", &s) ; getchar(); } while(c == 'y' || c == 'Y'); if(c=='s' || c=='Y') { for(i=0; i<nKr; i++) if (Kr[i].n<Kr[i+i].n) tmp = Kr[i]; Kr[i] = nKr[i+1] ; Kr[i+1] = tmp; printf("%/n", Kr[i].nazva); } getch(); return 0; }
Решение задачи: «Отсортировать страны по спаданию количества населения»
textual
Листинг программы
#include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> struct kraina { char kraina[100]; int naselennia; int ploshcha; }; int main(void) { struct kraina Kr[100]; char c='n',s; int i,n,j,tmp,nKr = 0; do { printf("Vvedit nazvy krainu "); scanf("%s",&Kr[nKr].kraina); //gets(Kr[nKr].kraina); printf("Vvedit naselennia "); scanf("%d", & Kr[nKr].naselennia); //getchar(); printf("Vvedit ploshchy "); scanf("%d", & Kr[nKr].ploshcha); nKr++; printf("continue?(y/n) or sort?(s/n)"); scanf("%s", &c); // getchar(); // scanf("%s", &s) ; // getchar(); } while(c == 'y' || c == 'Y'); if(c=='s' || c=='n') { for(j=0;j<nKr;j++) { for(i=0; i<nKr; i++) { if (Kr[i].naselennia<Kr[i+1].naselennia) { tmp = Kr[i].naselennia; Kr[i].naselennia = Kr[i+1].naselennia ; Kr[i+1].naselennia = tmp; //printf("%d\n", Kr[i].naselennia); } } } } for(i=0; i<nKr; i++) printf("%d\n", Kr[i].naselennia); getch(); return 0; }
Объяснение кода листинга программы
Код начинается с объявления структуры kraina
, которая содержит поля kraina
(название страны) и naselennia
(население). Затем объявляется переменная nKr
, которая отслеживает количество заполненных записей. В основном цикле программы с помощью функции scanf вводится информация о странах (название, население, площадь). Если введена буква 's' или 'n', то выполняется сортировка массива по населению в порядке убывания. Для этого используется вложенный цикл for, который сравнивает население соседних стран и меняет их местами при необходимости. После сортировки выводится отсортированный список населения стран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д