Исправить ошибки в приведенном коде - 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'): ...
Объяснение кода листинга программы
- Объявлена переменная типа char с именем
num
. - В цикле происходит чтение значения переменной
num
с помощью функции scanf, в которую передается форматный спецификатор%s
. - Значение переменной
num
используется в операторе switch для определения действия, которое нужно выполнить в зависимости от введенного значения. - В случае '1' выполняются действия, указанные после case, в которых, возможно, обрабатывается ошибка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д