Исправить ошибки в приведенном коде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
 
struct list
{
    char name[20];
    char sport[20];
    char year[20];
    char arena[20];
    char mass[20];
    char address[20];
};
 
zamena (struct list mas[],char x[], int i, int j)
    {
         int i1;
 
                    if ( strcmp(x[i], x[j+1]) > 0 )
                    {
                        for(i1=0; i1<20; i1++)
                        {
                            char temp = mas[j].name[i1];
                            mas[j].name[i1] = mas[j+1].name[i1];
                            mas[j+1].name[i1] = temp;
 
                            temp = mas[j].sport[i1];
                            mas[j].sport[i1] = mas[j+1].sport[i1];
                            mas[j+1].sport[i1] = temp;
 
                            temp = mas[j].year[i1];
                            mas[j].year[i1] = mas[j+1].year[i1];
                            mas[j+1].year[i1] = temp;
 
                            temp = mas[j].arena[i1];
                            mas[j].arena[i1] = mas[j+1].arena[i1];
                            mas[j+1].arena[i1] = temp;
 
                            temp = mas[j].mass[i1];
                            mas[j].mass[i1] = mas[j+1].mass[i1];
                            mas[j+1].mass[i1] = temp;
 
                            temp = mas[j].address[i1];
                            mas[j].address[i1] = mas[j+1].address[i1];
                            mas[j+1].address[i1] = temp;
                        }
                    }
    }
 
main()
{
    int i,j;
    char num;
    struct list mas[4]={{"Zvezda","fight","1990","2","300","Zvezdnay 21"},
                        {"Iskraa","swim","1987","3","500","Shlefonenko 19"},
                        {"Dinamo","footbal","1985","1","200","Naftizinovskaya 15"},
                        {"Unost'","run","1994","4","100","Zabygorskaya 9t"}};
 
    for(i=0; i<4; i++)
    {
        printf("%i.%s %9s %8s %6s %5s %5s\n",i+1 ,mas[i].name, mas[i].sport, mas[i].year, mas[i].arena, mas[i].mass, mas[i].address);
    }
    printf("\n");
 
    printf("_________________________________________________________________\n");
    printf("Sortirovat' po:\n");
    printf("1.Name\n");
    printf("2.Sport\n");
    printf("3.Years\n");
    printf("4.Arena\n");
    printf("5.Mass\n");
    printf("6.Address\n");
 
    printf("\n");
    printf("Enter number:");
    scanf("%s",&num);
 
    char temp;
 
    switch(num)
    {
        case('1'):
        {
            printf("You choose: Name\n");
            printf("\n");
            int i,j,i1;
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas , mas.name , i , j) ;
 
                    break;
        }
 
        case('2'):
        {
            printf("You choose: Sport\n");
            printf("\n");
            int i,j,i1;
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas,mas.sport , i , j) ;
 
                    break;
        };
 
        case('3'):
        {
            printf("You choose: Years\n");
            printf("\n");
            int i,j,i1;
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas,mas.year, i, j) ;
 
                    break;
        };
        case('4'):
        {
            printf("You choose: Arena\n");
            printf("\n");
            int i,j,i1;
 
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas,mas.arena, i, j) ;
 
                    break;
        };
        case('5'):
        {
            printf("You choose: Mass\n");
            printf("\n");
            int i,j,i1;
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas,mas.mass, i, j) ;
 
                    break;
        }
        case('6'):
        {
            printf("You choose: Address\n");
            printf("\n");
            int i=0,j,i1;
            for( i = 0; i < 4; i ++)
                for( j = 0; j < 4 - i- 1; j ++)
                    zamena(mas,mas.address, i, j) ;
 
                    break;
        }
    }
    printf("_________________________________________________________________\n");
    for(i=0; i<4; i++)
    {
        printf("%i.%s %9s %8s %6s %5s %5s\n",i+1 ,mas[i].name, mas[i].sport, mas[i].year, mas[i].arena, mas[i].mass, mas[i].address);
 
    }
    printf("\n");
 
}

Решение задачи: «Исправить ошибки в приведенном коде»

textual
Листинг программы
char num;
...
scanf("%s", &num);
...
switch(num) {
    case('1'):
...

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

  1. Объявлена переменная типа char с именем num.
  2. В цикле происходит чтение значения переменной num с помощью функции scanf, в которую передается форматный спецификатор %s.
  3. Значение переменной num используется в операторе switch для определения действия, которое нужно выполнить в зависимости от введенного значения.
  4. В случае '1' выполняются действия, указанные после case, в которых, возможно, обрабатывается ошибка.

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


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

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

10   голосов , оценка 4 из 5