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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2013, 16:44   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию Не передаются аргументы

Код:
float input_matrix();
void change_matrix(float**, int);
void print_matrix(float**, int );

int main()
{
	setlocale(LC_ALL, "Russian"); // поддержка вывода русского языка в консоли

	input_matrix();
	printf("Ваша текущая матрица имеет вид:\n\n");	
	print_matrix(A, n);
	change_matrix(A,n);
	printf("Измененная матрица:\n");
	print_matrix(A, n);

	for(int i=0;i<n;i++)
	free(A[i]);
	free(A);

	getch(); 

}

float input_matrix()
{
	float **A; //  исходная матрица  
	int n;  // кол-во элементов в матрицы
	int fl=0; // флаг, необходимый при неправильных входных данных.

		printf("Введите размерность матрицы:\n");
	do
	{
	if(!scanf("%d", &n))
	{
		system("cls");
		printf("Неверный ввод!\n");
		fflush(stdin);
		fl=1;
	}
	else 
	{
		fl=0;
	
		if(n<1)
			{
				system("cls");
				printf("Неверно указана размерность матрицы. Повторите ввод\n");
			}
	}
	}while(n<1);
//==================================================================
	A=(float**)malloc(n * sizeof(float*));
	if(A==NULL)
	{
		printf("Динамический массив не создан!");
		return 0;
	}
//==================================================================
// Ввод верхнетреугольной матрицы
	printf("Введите элементы верхней треугольной матрицы");
	for(int i=0;i<n;i++)
	{
		A[i]=(float *)calloc(n, sizeof(float*));
		if(A[i]==NULL)
			{
				printf("Динамический массив не создан!");
				return 0;
			}
		for(int j=i;j<n;j++)
		{	
			do
			{
			printf("\nA[%d][%d] = ", i+1, j+1);
			if(!scanf("%f", &A[i][j]))
			{
				system("cls");
				printf("Неверный ввод!\n");
				fflush(stdin);
				fl=1;
			}
			else
			{
				fl=0;
				if(A[i][j]==0)
					{
						printf("В матрице не должно быть нулей!:\n");
						fflush(stdin);
						j-=1;
					}
			}
			}while(fl==1);
	}
	}
	return   A, n;
}
Матрица после ввода в отдельной функции не передается в main. Что не так?
Praud вне форума Ответить с цитированием
Старый 05.12.2013, 16:57   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Передавать по ссылке указатель
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 05.12.2013, 17:04   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

return &A, n;? или что?
Praud вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не передаются данные POST Masafi PHP 12 19.07.2013 14:26
не передаются TCP-пакеты по сети Niyaz.cpp C/C++ Сетевое программирование 15 08.06.2013 02:00
с++ командная строка, Вывести все нечисловые аргументы, но выводит все аргументы чего-то, nati_94 Помощь студентам 8 03.03.2013 19:23
Не передаются параметры из тега <a> Smitt&Wesson PHP 2 14.01.2012 10:22
тест на php+mysql. не передаются значения переменных Liana4271 Помощь студентам 2 14.06.2009 01:28