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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2018, 04:18   #1
gatherclouds
Пользователь
 
Регистрация: 01.10.2018
Сообщений: 12
Смущение [C] Лабораторная работа: нужна помощь с решением задачи с матрицей. код написан, но есть ошибка - при печати матриц А и В печатаются одинаковые - максимальный элемент не находится

Условие задачи в первом вложении
Суть такова: код написан, но в нем есть ошибка - при печати матриц А и В печатаются одинаковые матрицы - максимальный элемент не находится. Что можно сделать?
Код:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
	int *b, *a, **A, **B, i, j, p, k, n, max;
	setlocale(LC_ALL, "Rus");

	printf("Введите размер матрицы (от 1 до 20): \n");
	if ((scanf("%d", &n)) && (n < 1 || n > 20))
	{
		printf("Ошибка: Введено не число или размер выходит за пределы допустимых значений");
		getch();
		return 0;
	}
	a = (int*)malloc(n*n * sizeof(int));
	A = (int **)malloc(n * sizeof(int*));
	for (i = 0; i < n; i++)
		A[i] = a + i * n;
	b = (int*)malloc(n*n * sizeof(int));
	B = (int **)malloc(n*n * sizeof(int*));
	for (i = 0; i < n; i++)
		B[i] = a + i * n;

	printf("Введите элементы матрицы: \n");
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			scanf("%d", &A[i][j]);
		}
	}



	for (i = 0; i < n; i++) 
	{
		for (j = 0; j < n; j++) 
		{
			max = A[0][0];
			if (max < A[i][j])
			{
				for (k = 0; k <= i; k++)
					for (p = 0; p <= j; p++)
						if (max < A[k][p])
							max = A[k][p];
				B[i][j] = max;
			}

		}

	}




	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			printf("%d", A[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			printf("%d", B[i][j]);
		}
		printf("\n");
	}
	getch();
	return 0;
}
Итог выполнения программы во втором вложении
Изображения
Тип файла: jpg 33URBKOyFcM.jpg (80.9 Кб, 139 просмотров)
Тип файла: jpg RFUyZP4y9iQ.jpg (8.4 Кб, 124 просмотров)
gatherclouds вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа: нужна помощь с динамическим массивом данных (С) gatherclouds Помощь студентам 7 01.10.2018 19:58
Нужна помощь с решением задачи. Динамическая память на паскале Loginnn Паскаль, Turbo Pascal, PascalABC.NET 3 09.12.2015 20:53
Нужна помощь с решением задачи! Тьягор Помощь студентам 5 27.09.2014 20:06
вычеркнуть строку и столбец на пересечении которого находится максимальный элемент Amalia Общие вопросы Delphi 2 03.04.2010 08:01