Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define N 3 // тут у нас все разбито на функции, поэтому я не придумал как проще определить количество всех элементов
- struct Book { // задаем структуру
- char name[30];
- int price;
- int isMagazine;
- }
- book[N]; // инициализируем структуру
- void insertBook() { // ф-ия добавления книг
- int i;
- for (i=0; i<N; i++) {
- printf("\n===%d-я книга===\n", i+1);
- printf("Название: ");
- scanf("%s", book[i].name);
- printf("Цена:");
- scanf("%d", &book[i].price);
- printf("Журнал(1) или Газета(0): ");
- scanf("%d", &book[i].isMagazine);
- }
- }
- void printResult() { // ф-ия вывода данных из структуры
- int z;
- for(z=0;z<N;z++) {
- printf("%s\n",book[z].name);
- }
- }
- void sortBooks() { // тут самое веселое - сортировка
- int j, k;
- struct Book p;
- for(j=0; j<N; j++) {
- for(k=0; k<N; k++) {
- if(strcmp(book[j].name,book[k].name)<0) {
- p = book[j];
- book[j] = book[k];
- book[k] = p;
- }
- }
- }
- }
- int main(){
- // запуск всего подряд
- insertBook();
- printf("До сортировки:\n");
- printResult();
- printf("\n");
- sortBooks();
- printf("\n");
- printf("После сортировки:\n");
- printResult();
- return 0;
- }
- /*
- Пример работы:
- ===1-я книга===
- Название: Пушкин
- Цена:1
- Журнал(1) или Газета(0): 1
- ===2-я книга===
- Название: Ахматова
- Цена:1
- Журнал(1) или Газета(0): 1
- ===3-я книга===
- Название: Лермонтов
- Цена:1
- Журнал(1) или Газета(0): 1
- До сортировки:
- Пушкин
- Ахматова
- Лермонтов
- После сортировки:
- Ахматова
- Лермонтов
- Пушкин
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement