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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 19:41   #1
Adminx
 
Аватар для Adminx
 
Регистрация: 17.06.2009
Сообщений: 7
Сообщение Матрицы

Написать ФУНКЦИЮ для обработки матрицы.
Параметры (в скобках): имя матрицы, число
строк и столбцов, дополнительные параметры (по заданию).
Заполнение случайными числами, вывод и обработка должны
быть реализованы в разных функциях.
Задание выполнить разными способами:
а) для статической матрицы не более NxM
б) для динамической матрицы [n][m]
в) используя для матрицы одномерный массив [n*m]


вариант а
Код:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int mas[10][10]; //задаём матрицу 10х10

void generate(){//функция генерации массива
	srand(time(0)); 
	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++) mas[i][j] = rand()%5;
}//присваивание элементам массива случайных значений

void write(){//функция вывода массива на экран
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++) printf("%i ",mas[i][j]);
		printf("\n");
	}
}

void qs(int s, int L, int R){ //сотртировка каждой строки массива
	int i=L, j=R, x = mas[s][(L+R)/2],tmp;
	while(i<j){
		while(mas[s][i]<x) i++;
		while(mas[s][j]>x) j--;
		if(i<=j){
			tmp = mas[s][i]; mas[s][i] = mas[s][j]; mas[s][j] = tmp;
			i++; j--;
		}
	}
	if(i<R) qs(s,i,R);
	if(L<j) qs(s,L,j);
}

void sort(){
	for(int i=0;i<10;i++) qs(i,0,9);
}

void prov(){//проверка на наличие одинаковых строк и вывод их номеров
	char f = 0;
	for(int i=0;i<9;i++)
		for(int j=i+1;j<10;j++){
			f = 0;
			for(int k=0;k<10;k++) if(mas[i][k]!=mas[j][k]){
				f = 1;
				break;
			}
			if(!f) printf("%i %i\n",i+1,j+1);
		}
}

void main(){
	generate();
	write();
	sort();
	prov();
}
как реализовать вариант б и в?

Последний раз редактировалось Sazary; 03.12.2009 в 19:58.
Adminx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
TurboPascal: графы, матрицы смежности и матрицы инцидентности. ulala Помощь студентам 1 03.03.2011 19:28
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
Матрицы на C AlinAA Фриланс 1 28.02.2009 00:55