ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 105
Отправить сообщение для BitHack с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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;
	
}
я забыл написать, что нужно написать на паскале)))
можешь переписать пожалуйста)
 
Ответить с цитированием
 



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



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


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




ANTICHAT.XYZ