Массив. Надо поменять одну вещь в программе... - 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;
}

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

В этом коде выполняется следующая последовательность действий:

  1. Задаются размеры массива N=6, M=6 и инициализируется массив a[N][M].
  2. Инициализируется массив s[N] и генерируются случайные числа в диапазоне от -9 до 9 для каждой строки массива a[N][M].
  3. Выполняется перестановка строк массива a[N][M] с помощью двух вложенных циклов, начиная с последней строки и заканчивая предпоследней.
  4. Выполняется перестановка столбцов массива a[N][M] с помощью двух вложенных циклов, начиная с последнего столбца и заканчивая предпоследним.
  5. Выводится обновленный массив a[N][M].
  6. Программа ожидает нажатия клавиши для завершения работы. Список изменений, которые нужно внести:
  7. Заменить getch(); на getchar();
  8. Убрать комментарии и дополнительные символы, которые не являются частью кода.
  9. Изменить printf (%3d,a[i][j]); на printf (%3d,a[i][j+1]); во втором вложенном цикле, чтобы поменять местами соответствующие элементы. По завершении этих изменений код будет выполнять требуемую задачу.

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


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

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

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