Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 16:32   #1
Alexandr_Snorlax
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 12
По умолчанию Ошибка в работе с матрицей(Си++)

Помогите, пожалуйста найти и устранить ошибку)
Задание:
Назовём допустимым преобразованием матрицы перестановку двух строк или двух столбцов. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться того, чтобы один из элементов матрицы, обладающий наименьшим значением, распологался в левом нижнем углу матрицы.
Код:
Код:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "locale.h"
#include <stdlib.h>
#include <time.h>
const int MaxSize = 100;


void display_matrix(int a[][n]) {

  int i, j;

  for (i = 0; i < n; i++) {

    for (j = 0; j < n; j++) {

      printf("%5d", a[i][j]);

    }

    printf("\n");

  }

}
 int main(void)
{ setlocale(LC_ALL,"Russian");
  int a[n][n], i, j;
  int temp, min_i, min_j;
int n;
int* in;
printf("\nВведите размерность массива: ");
scanf("%d",n);
in=(int*)malloc(sizeof(int)*n);
printf ("\n Введите значения элементов"
		"массива:\n");
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      printf ("a[%d][%d]=",i+1,j+1);
	  scanf("%d",&a[i][j]);
    }
  }
  printf("Исходная матрица:\n");
  display_matrix(a);
  //найти минимальный элемент
  min_i = 0;
  min_j = 0;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      if (a[i][j] < a[min_i][min_j]) {
        min_i = i;
        min_j = j;
      }
    }
  }
  //замена колонн
  for (i = min_j; i; i--) {
    for (j = 0; j < n; j++) {
      temp = a[j][i];
      a[j][i] = a[j][i - 1];
      a[j][i - 1] = temp;
    }
    printf("местами столбцов %d и %d:\n", i, i + 1);
    display_matrix(a);
  }
  //замена строк
  for (i = min_i; i<(n-1); i++) {
   for (j = 0; j < n; j++) {   
      temp = a[i][j];
      a[i][j] = a[i + 1][j];
      a[i + 1][j] = temp;
    }
    printf("замена строк %d и %d:\n", i+1, i + 2);
    display_matrix(a);
  }
getch();
  return 0;
}
Alexandr_Snorlax вне форума Ответить с цитированием
Старый 28.12.2011, 17:04   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Debug'ом то пользоваться не умеешь?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.12.2011, 17:11   #3
Alexandr_Snorlax
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 12
По умолчанию

Нет, поэтому то и спраживаю
Alexandr_Snorlax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в работе программы Wefast Помощь студентам 1 25.12.2009 08:13
Ошибка при работе автофильтра ruavia3 Microsoft Office Excel 5 21.09.2009 15:05
Ошибки при работе с матрицей maziLa Общие вопросы C/C++ 2 10.04.2009 22:45
ошибка в задаче с матрицей Валюшка Помощь студентам 2 08.02.2009 16:54
Ошибка при работе с БД malevich БД в Delphi 8 25.11.2007 15:10