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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 18:09   #1
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию Проблема с передачей матрицы в функцию

Программа заполняет две матрицы 10 на 10 случайными числами в интервале от 10 до 99 и выводит их на экран. Вывод должен производится при помощи отдельной функции.
В чём собственно проблема: я не понимаю, как передать матрицу в функцию, объясните пожалуйста
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#define N 10
#define M 10

void vivod(int A[N][M], int B[N][M])
{
int A[N][M], B[N][M], i, j;
printf("Матрица A имеет вид:\n");//вывод матрицы A
	for(i = 0;i < N;i++)
	{
		for(j = 0;j < M;j++)
		{
		printf("%d |",A[i][j]);
		}
	printf("\n");
	}
printf("\nМатрица B имеет вид:\n");//вывод матрицы B
	for(i = 0;i < N;i++)
	{
		for(j = 0;j < M;j++)
		{
		printf("%d |",B[i][j]);
		}
	printf("\n");
	}
}

main()
{
setlocale(LC_ALL,"RUS");
int A[N][M], B[N][M], i, j, a_diapazon = 10, b_diapazon = 99;//a_diapazon и b_diapazon границы диапазона случайных чисел
	for(i = 0;i < N;i++)//заполнение обеих матриц случайными числами
	{
		for(j = 0;j < M;j++)
		{
		A[i][j] = (rand() % (b_diapazon - a_diapazon + 1)) + a_diapazon;
		B[i][j] = (rand() % (b_diapazon - a_diapazon + 1)) + a_diapazon;
		}
	}
vivod(A, B);//вывод обеих матриц
printf("\nГотово");
getch();
}
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 12.03.2013, 20:24   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
int A[N][M], B[N][M]
вот это объявление из функции уберите, оно явно лишнее. Представьте - передаете Вы две заполненные матрицы внутрь функции, а там их заново инициализируете - естественно, они у Вас нулями забиваются.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.03.2013, 20:47   #3
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Спасибо, заработало
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 12.03.2013, 20:56   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Хорошая тема! Спасибо Че Гевара, полезная информация!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с передачей( фтпуд17 Свободное общение 5 27.01.2011 11:23
Проблема с передачей данных tools Общие вопросы C/C++ 5 25.12.2010 14:49
проблема с передачей параметров Mira-girl Общие вопросы по Java, Java SE, Kotlin 2 22.11.2010 23:59
Проблема с передачей значения в функцию steklyashka Помощь студентам 3 19.11.2009 22:19
Проблема с передачей куки arwm Работа с сетью в Delphi 7 28.12.2007 23:44