Структура и сортировка: программа выводит нули - C (СИ)
Формулировка задачи:
Написал программу, ввожу значения а они выдаются нулями, помогите...
Должно вывести как на фото, и потом сортировку по численности в порядке убывания, спасибо
#include <stdio.h>// Визначення бібліотеки функцій для використання scanf та printf #include <conio.h>// Визначення бібліотеки функцій для використання getch struct system // опис структурного типу system { char spclass[2]; //специфікація поля opersystem float prmassa[6]; //специфікація поля sybd float proc[9]; //специфікація поля vnpam int chicl[15]; //специфікація поля operpam }; int main(void) //визначення головної функції { struct system a[3],x; //ініціалізація масиву a з трьох елементів, та змінної х структурного типу system int i,k=1; //ініціалізація змінних i,k for (i=0;i<3;i++) //оголошення циклу з параметром { printf("spclass, prmassa, proc, chicl\n"); //запрошення на введення даних scanf("%s%f%f%d",&a[i].spclass,&a[i].prmassa,&a[i].proc,&a[i].chicl); //зчитування змінних }; printf("\n\n"); printf("spclass prmassa proc chicl\n"); for (i=0;i<3;i++) { printf("%2s %6.4f %9.6f %14d\n",&a[i].spclass,&a[i].prmassa,&a[i].proc,&a[i].chicl); }; while (k!=0) //оголошення циклу з передумовою, для сортування масиву методом бульбашки { k=0; //присвоєння змінній k значення 0 for(i=0; i<2; i++) //оголошення циклу з параметром { if (a[i].chicl>a[i+1].chicl) //порівняння елементів масиву { x=a[i]; //обмін значеннями двома сусідніми елементами масиву a[i]=a[i+1]; a[i+1]=x; k=1; }; }; }; printf("\n\n"); printf("spclass prmassa proc chicl\n"); for (i=0;i<3;i++) { printf("%2s %6.4f %9.6f %14d\n",&a[i].spclass,&a[i].prmassa,&a[i].proc,&a[i].chicl);//Виведення впорядкованої таблиці }; getch();//функція для затримки консолі }
Решение задачи: «Структура и сортировка: программа выводит нули»
textual
Листинг программы
#include <stdio.h> // Визначення бібліотеки функцій для використання scanf та printf #include <conio.h> // Визначення бібліотеки функцій для використання getch struct system // опис структурного типу system { char spclass[2]; //специфікація поля opersystem float prmassa; //специфікація поля sybd float proc; //специфікація поля vnpam int chicl; //специфікація поля operpam }; int main(void) //визначення головної функції { struct system a[3], x; //ініціалізація масиву a з трьох елементів, та змінної х структурного типу system int i, k=1; //ініціалізація змінних i,k for (i = 0; i < 3; i++) //оголошення циклу з параметром { printf("spclass, prmassa, proc, chicl\n"); //запрошення на введення даних scanf("%s%f%f%d", &a[i].spclass, &a[i].prmassa, &a[i].proc, &a[i].chicl); //зчитування змінних } printf("\n\n"); printf("spclass prmassa proc chicl\n"); for (i = 0; i < 3; i++) { printf("%2s %6.4f %9.6f %14d\n", a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); // & в printf --> error } while (k != 0) //оголошення циклу з передумовою, для сортування масиву методом бульбашки { k = 0; //присвоєння змінній k значення 0 for(i = 0; i < 2; i++) //оголошення циклу з параметром { if (a[i].chicl > a[i + 1].chicl) //порівняння елементів масиву { x = a[i]; //обмін значеннями двома сусідніми елементами масиву a[i] = a[i + 1]; a[i + 1] = x; k = 1; }; }; }; printf("\n\n"); printf("spclass prmassa proc chicl\n"); for (i = 0; i < 3; i++) { printf("%2s %6.4f %9.6f %14d\n", a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); //Виведення впорядкованої таблиці // & в printf --> error }; //getch(); //функція для затримки консолі getchar(); getchar(); }
Объяснение кода листинга программы
Список элементов кода:
- #include
- Подключение библиотеки функций для использования scanf и printf - #include
- Подключение библиотеки функций для использования getch - struct system - Описание структурного типа system
- int main(void) - Определение главной функции
- struct system a[3], x; - Инициализация массива a из трех элементов и переменной x структурного типа system
- int i, k=1; - Инициализация переменных i и k
- for (i = 0; i < 3; i++) - Ограничение цикла для ввода данных
- printf(
spclass, prmassa, proc, chicl\n
); - Запрос на ввод данных - scanf(
%s%f%f%d
, &a[i].spclass, &a[i].prmassa, &a[i].proc, &a[i].chicl); - Считывание переменных - printf(
\n\n
); - Вывод символа новой строки - printf(
spclass prmassa proc chicl\n
); - Вывод заголовка таблицы - for (i = 0; i < 3; i++) - Ограничение цикла для вывода данных
- printf(
%2s %6.4f %9.6f %14d\n
, a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); - Вывод данных в таблицу - while (k != 0) - Ограничение цикла для сортировки массива методом пузырька
- { - Начало блока кода
- k = 0; - Присваивание переменной k значение 0
- for(i = 0; i < 2; i++) - Ограничение цикла для сравнения элементов массива
- if (a[i].chicl > a[i + 1].chicl) - Сравнение элементов массива
- { - Начало блока кода
- x = a[i]; - Обмен значениями двух соседними элементами массива
- a[i] = a[i + 1]; - Перестановка элементов массива
- a[i + 1] = x; - Возврат элементов на исходные места
- k = 1; - Присваивание переменной k значение 1
- }; - Конец блока кода
- printf(
\n\n
); - Вывод символа новой строки - printf(
spclass prmassa proc chicl\n
); - Вывод заголовка таблицы - for (i = 0; i < 3; i++) - Ограничение цикла для вывода данных
- printf(
%2s %6.4f %9.6f %14d\n
, a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); - Вывод данных в таблицу - getchar(); - Функция для задержки консоли
- getchar(); - Функция для задержки консоли
- getchar(); - Функция для задержки консоли
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д