HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #10  
Старый 13.12.2009, 22:43
BitHack
Познающий
Регистрация: 14.01.2008
Сообщений: 50
С нами: 9643491

Репутация: 105
По умолчанию

Цитата:
Сообщение от ss88  
Вот тебе на С. Дополнительная сортировка номеров столбцов не нужна, т.к. они и так в массиве по-порядку
Код:
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

typedef struct {
	int* col_nums;
	int col_count;
} matrix_info_t;

#define N 3

matrix_info_t* scan_matrix(int* M, int n);

int main(int argc, char** argv)
{
	int M[N*N] = {
		5,2,3,
		4,3,2,
		3,4,1
	};
	
	matrix_info_t * m_info = scan_matrix(M, N);
	
	(void)printf("Номера столбцов:\n");
	for(int i = 0; i < m_info->col_count; i++){
		(void)printf("%d ", m_info->col_nums[i]);
	}
	
	(void)printf("\nНомера столбцов в квадрате:\n");
	for(int i = 0; i < m_info->col_count; i++){
		(void)printf("%d ", m_info->col_nums[i]*m_info->col_nums[i]);
	}
	
	(void)printf("\n");
	
	return 0;
}

matrix_info_t* scan_matrix(int* M, int n){
	
	matrix_info_t * ret = malloc(sizeof(matrix_info_t));
	ret->col_count = 0;
	
	for(int j = 0; j < n; j++){
		bool correct_column = true;
		for(int i = 1; i < n; i++){
			if(M[N*(i - 1) + j] < M[N*i + j]){
				correct_column = false;
				break;
			}
		}
		
		if(correct_column){
			ret->col_nums = realloc(ret->col_nums, sizeof(int) * ret->col_count++);
			ret->col_nums[ret->col_count - 1] = j;
		}
	}
	
	return ret;
	
}
я забыл написать, что нужно написать на паскале)))
можешь переписать пожалуйста)
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.