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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2010, 16:57   #1
fatefighter
 
Аватар для fatefighter
 
Регистрация: 16.03.2010
Сообщений: 3
По умолчанию простенькая прога по динамическим матрицам

программа должна быть написана на чистом си, без с++. смысл - выделить память под матрицу, считать ее и вывести на экран. чисто на умение пользоваться функциями и распределять память. и все бы хорошо, но она не работает, а ошибку я найти не могу. помогите пожалуйста



#include "stdafx.h"
#include <stdlib.h>
#include <math.h>

int print_matrix(int **arr, int m, int n);
int **get_matrix(int m, int n);

int main()
{
int m_A, n_A, q;
int **A=(int **) calloc(m_A, sizeof(int));
for (int i=0; i<m_A; i++)
A[i]=(int *) calloc(n_A, sizeof(int));

do
{ printf("write matrix size:\n");
printf("write row number:\n");
scanf ("%d",&m_A);
printf ("write coloum number:\n");
scanf ("%d",&n_A);
(get_matrix(m_A, n_A));
}
while (m_A<=0||n_A<=0);
//интерфейс
for (; ; )
{printf("write number 1 to print matrix\n 2-exit\n");
scanf("%d",&q);
switch (q)
{ case 1: (print_matrix(A ,m_A, n_A));
break;
case 2: return 0;
break;
default: printf("\n\n====WRONG NUMBER====\n\n");
}
}

return 0;
}

int **get_matrix(int m, int n)
{
int **arr=(int **) calloc(m, sizeof(int));
for (int i=0; i<m; i++)
arr[i]=(int *) calloc(n, sizeof(int));
//Ввод элементов матрицы
printf("write matrix elements:\n");
for(int i=0; i < m; i++)
for(int j=0; j < n; j++)
scanf("%d",&arr[i][j]);
return arr;
}
//функция вывода матрицы на экран
int print_matrix(int **arr, int m, int n)
{
for(int i=0; i < m; i++)
for(int j=0; j < n; j++)
printf("%d\t", arr[i][j]);
return 0;
}
fatefighter вне форума Ответить с цитированием
Старый 06.11.2010, 02:15   #2
kozaby
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 14
По умолчанию

Разбираться в чужих мыслях мне очень тяжело, особенно, когда все строки выровнялись по левому краю. Могу предложить вариант немного покороче:

Код:
#include<stdio.h>
#include<conio.h>

void main()
{
	int n = 2, m = 3;
	printf("Vvedite kol-no strok i stolbcov:\nn = ");
	scanf("%d",&n);
	printf("m = ");
	scanf("%d",&m);
	int **mas;
	mas = new int*[n];
	for (int i = 0; i < n; i++)
	{
		mas[i] = new int[m];
	}
	printf("Vvedite elementy massiva:\n");
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++)
		{
			printf("a[%d][%d] = ", i+1, j+1);
			scanf("%d",&mas[i][j]);
		}
	}
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < m; j++)
		{
			printf("%3d", mas[i][j]);
		}
		printf("\n");
	}
	getch();
}
kozaby вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна прога на Паскале!!! По матрицам!!! Умножение и сортировка!!! Яна Сафронова Помощь студентам 7 11.05.2010 23:00
C++ программа по матрицам radio Помощь студентам 7 05.02.2010 08:25
Моя простенькая прога. step@n Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 19.11.2009 15:17
Задание по матрицам Иван 883 Паскаль, Turbo Pascal, PascalABC.NET 2 27.12.2008 01:43
Задача по матрицам Alfons Паскаль, Turbo Pascal, PascalABC.NET 3 05.03.2008 14:09