ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

13.12.2009, 22:43
|
|
Познающий
Регистрация: 14.01.2008
Сообщений: 50
Провел на форуме: 1065528
Репутация:
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;
}
я забыл написать, что нужно написать на паскале)))
можешь переписать пожалуйста) 
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|