Массив. Надо поменять одну вещь в программе... - C (СИ)
Формулировка задачи:
Программа,которая представлена ниже работает нормально, без ошибок. Вопрос у меня в следующем: если бы мы с клавиатуры вводили номер столбца(N) и строки(M), которую надо было бы удалить, то как бы она изменилась? В данном случае у нас N=5 ,M=3.
// Z5.cpp : Defines the entry point for the console application. //В массиве удалить 5 столбец и 3 строчку. #include "stdafx.h" #include "stdlib.h" #include "conio.h" int _tmain(int argc, _TCHAR* argv[]) { const int N=6,M=6; int a[N][M]; float s[N]; srand(2); for(int i=0;i<N;i++) { for(int j=0;j<M;j++) { a[i][j]=(rand()*18)/32768-9; printf ("%3d",a[i][j]); } printf("\n"); } for(int i=2;i<N-1;i++) { for(int j=0;j<M;j++) { a[i][j]=a[i+1][j]; } } for(int i=0;i<N;i++) { for(int j=4;j<M-1;j++) { a[i][j]=a[i][j+1]; } } printf("\n"); for(int i=0;i<N-1;i++) { for(int j=0;j<M-1;j++) { printf ("%3d",a[i][j]); } printf("\n"); } getch(); return 0; }
Решение задачи: «Массив. Надо поменять одну вещь в программе...»
textual
Листинг программы
int _tmain(int argc, _TCHAR* argv[]) { const int N=6,M=6; int a[N][M]; float s[N]; srand(2); for(int i=0;i<N;i++) { for(int j=0;j<M;j++) { a[i][j]=(rand()*18)/32768-9; printf ("%3d",a[i][j]); } printf("\n"); } for(int i=n-1;i<N-1;i++) // for(int i=2;i<N-1;i++) { for(int j=0;j<M;j++) { a[i][j]=a[i+1][j]; } } for(int i=0;i<N-1;i++) // for(int i=0;i<N;i++) { for(int j=m-1;j<M-1;j++) // for(int j=4;j<M-1;j++) { a[i][j]=a[i][j+1]; } } printf("\n"); for(int i=0;i<N-1;i++) { for(int j=0;j<M-1;j++) { printf ("%3d",a[i][j]); } printf("\n"); } getch(); return 0; }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Задаются размеры массива N=6, M=6 и инициализируется массив a[N][M].
- Инициализируется массив s[N] и генерируются случайные числа в диапазоне от -9 до 9 для каждой строки массива a[N][M].
- Выполняется перестановка строк массива a[N][M] с помощью двух вложенных циклов, начиная с последней строки и заканчивая предпоследней.
- Выполняется перестановка столбцов массива a[N][M] с помощью двух вложенных циклов, начиная с последнего столбца и заканчивая предпоследним.
- Выводится обновленный массив a[N][M].
- Программа ожидает нажатия клавиши для завершения работы. Список изменений, которые нужно внести:
- Заменить
getch();
наgetchar();
- Убрать комментарии и дополнительные символы, которые не являются частью кода.
- Изменить
printf (
%3d,a[i][j]);
наprintf (
%3d,a[i][j+1]);
во втором вложенном цикле, чтобы поменять местами соответствующие элементы. По завершении этих изменений код будет выполнять требуемую задачу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д