Структура и сортировка: программа выводит нули - 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();
}

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

Список элементов кода:

  1. #include - Подключение библиотеки функций для использования scanf и printf
  2. #include - Подключение библиотеки функций для использования getch
  3. struct system - Описание структурного типа system
  4. int main(void) - Определение главной функции
  5. struct system a[3], x; - Инициализация массива a из трех элементов и переменной x структурного типа system
  6. int i, k=1; - Инициализация переменных i и k
  7. for (i = 0; i < 3; i++) - Ограничение цикла для ввода данных
  8. printf(spclass, prmassa, proc, chicl\n); - Запрос на ввод данных
  9. scanf(%s%f%f%d, &a[i].spclass, &a[i].prmassa, &a[i].proc, &a[i].chicl); - Считывание переменных
  10. printf(\n\n); - Вывод символа новой строки
  11. printf(spclass prmassa proc chicl\n); - Вывод заголовка таблицы
  12. for (i = 0; i < 3; i++) - Ограничение цикла для вывода данных
  13. printf(%2s %6.4f %9.6f %14d\n, a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); - Вывод данных в таблицу
  14. while (k != 0) - Ограничение цикла для сортировки массива методом пузырька
  15. { - Начало блока кода
  16. k = 0; - Присваивание переменной k значение 0
  17. for(i = 0; i < 2; i++) - Ограничение цикла для сравнения элементов массива
  18. if (a[i].chicl > a[i + 1].chicl) - Сравнение элементов массива
  19. { - Начало блока кода
  20. x = a[i]; - Обмен значениями двух соседними элементами массива
  21. a[i] = a[i + 1]; - Перестановка элементов массива
  22. a[i + 1] = x; - Возврат элементов на исходные места
  23. k = 1; - Присваивание переменной k значение 1
  24. }; - Конец блока кода
  25. printf(\n\n); - Вывод символа новой строки
  26. printf(spclass prmassa proc chicl\n); - Вывод заголовка таблицы
  27. for (i = 0; i < 3; i++) - Ограничение цикла для вывода данных
  28. printf(%2s %6.4f %9.6f %14d\n, a[i].spclass, a[i].prmassa, a[i].proc, a[i].chicl); - Вывод данных в таблицу
  29. getchar(); - Функция для задержки консоли
  30. getchar(); - Функция для задержки консоли
  31. getchar(); - Функция для задержки консоли

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


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

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

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