Пятница, 26.04.2024, 13:40
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1301
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

примеры решения задач по двумерным массивам

Пример 1

Дана целочисленная матрица размера N×M. Размер   матрицы   и   элементы  вводятся пользователем. Поменять местами  строки матрицы,   содержащие  максимальный  и минимальный   элементы   матрицы.  Если максимум и минимум  находятся  в  одной строке, то строку  обнулить.  Полученную матрицу вывести на экран.

#include <stdio.h>

int main(int argc, char *argv[])

{

  int N,M;

  printf("Введите размеры матрицы: ");  scanf("%d %d",&N,&M);

  if((N<2)||(M<2)) {

    printf("Размеры введены некорректно!\n");

    return 0;

  }

  printf("Введите матрицу:\n");

  int matrix[N][M];

  for(int i=0;i<N;i++) for(int j=0;j<M;j++) scanf("%d",&matrix[i][j]);

  int max = matrix[0][0], min = matrix[0][0];

  int imax = 0, imin = 0;

    for(int i=0;i<N;i++) for(int j=0;j<M;j++){

      if(max < matrix[i][j]) {max = matrix[i][j]; imax = i;}

      if(min > matrix[i][j]) {min = matrix[i][j]; imin = i;}

  }

if(imin != imax){

    for(int j=0;j<M;j++){

      int tmp = matrix[imin][j];

      matrix[imin][j] = matrix[imax][j];

      matrix[imax][j] = tmp;

    }

  }else{

     for(int j=0;j<M;j++) matrix[imin][j] = 0;

  }

  printf("Результат:\n");

  for(int i=0;i<N;i++){

    for(int j=0;j<M;j++) printf("%4d ",matrix[i][j]);

    printf("\n");

  }

  return 0;

}

Пример 2

Дана вещественная матрица размера N  на M.  Продублировать   столбец  матрицы   с минимальной суммой элементов. Значения N,    M    и    элементы    матрицы    вводит пользователь.

#include <stdio.h>

int main(int argc, char *argv[])

{

  int N,M;

  printf("Inter N & M: "); scanf("%d %d",&N,&M);

  double matrix[N][M+1];

  printf("Input matrix:\n");

  for(int i=0;i<N;i++)

    for(int j=0;j<M;j++)

      scanf("%lf",&matrix[i][j]);

  double min = 0.0;

  int pos = 0;

  for(int j=0;j<M;j++){

    double sum = matrix[0][j];

    for(int i=1;i<N;i++) sum += matrix[i][j];

    if((j==0)||(sum < min)) {min = sum; pos = j;}

  }

  for(int j=M;j>pos;j--)

    for(int i=0;i<N;i++)

      matrix[i][j] = matrix[i][j-1];

  M++;

  printf("Result matrix:\n");

  for(int i=0;i<N;i++){

    for(int j=0;j<M;j++)

      printf("%6.2lf ",matrix[i][j]);

    printf("\n");

  }

  return 0;

}

 

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---