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

13.12.2009, 23:20
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Сообщение от Nelson17
Дана целочисленная матрица размера m на n. Размер матрицы задается динамически во время выполнения программы. Для хранения элементов матрицы использовать динамическое выделение памяти. Матрица заполняется случайными числами в диапазоне от -50 до 50. Используя алгоритм пузырьковой сортировки отсортировать элементы каждой четной строки по возрастанию, а нечетную - по убыванию. Заполнение матрицы случайными числами, сортировку элементов строк матрицы и вывод матрицы на экран организовать в виде функции.
Задание вроде не сильное с первого взгляда, но написать не могу. Помогите по-возможности. С++
Не путай С и С++
Вот:
Код:
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
void fill_matrix(int* matrix, int m, int n);
void print_matrix(int* matrix, int m, int n);
void sort_matrix(int* matrix, int m, int n);
int main(int argc, char** argv)
{
int m, n;
(void) printf("Введите количество строк: ");
(void) scanf("%d", &m);
(void) printf("Введите количество столбцов: ");
(void) scanf("%d", &n);
int * matrix = malloc(m * n * sizeof(int));
fill_matrix(matrix,m,n);
print_matrix(matrix,m,n);
(void) printf("Сортировка\n");
sort_matrix(matrix,m,n);
print_matrix(matrix,m,n);
return 0;
}
void fill_matrix(int* matrix, int m, int n){
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
int r = rand() % 51;
matrix[m*i + j] = (r % 2)?-r:r;
}
}
}
void print_matrix(int* matrix, int m, int n){
(void) printf("\nМатрица [%d,%d]\n", m, n);
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
(void) printf("%3d ", matrix[m*i + j]);
}
(void) printf("\n");
}
(void) printf("\n");
}
void sort_matrix(int* matrix, int m, int n){
for(int i = 0; i < m; i++){
bool cond = true;
while(cond) {
cond = false;
for(int j = 0; j < n - 1; j++){
if(i % 2){
if(matrix[m*i + j] < matrix[m*i + j + 1])
cond = true;
} else {
if(matrix[m*i + j] > matrix[m*i + j + 1])
cond = true;
}
if(cond){
int swp = matrix[m*i + j];
matrix[m*i + j] = matrix[m*i + j + 1];
matrix[m*i + j + 1] = swp;
}
}
}
}
}
Результаты в таком виде:
rocky@rocky-laptop:~$ ./s
Введите количество строк: 4
Введите количество столбцов: 4
Матрица [4,4]
10 -49 -9 34
32 -37 -37 48
-45 -19 -5 -31
20 -19 -29 22
Сортировка
Матрица [4,4]
34 10 -9 -49
-37 -37 32 48
-5 -19 -31 -45
-29 -19 20 22
Если не захочет компилироваться в среде, которую ты используешь, то заюзай gcc:
rocky@rocky-laptop:~$ gcc -Wall -pedantic -std=c99 simple_lab3.c -o s
я забыл написать, что нужно написать на паскале)))
можешь переписать пожалуйста)
Какая неописюемая наглость  Не могу, я паскаль последний раз видел на 1-м курсе, а это было лет 7 назад, но я запомнил, что его лучше не видеть 
Перепиши сам, это не трудно
Последний раз редактировалось ss88; 13.12.2009 в 23:30..
|
|
|

13.12.2009, 23:27
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Как считать данные из файла *.txt в Turbo C?
|
|
|

13.12.2009, 23:31
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
fscanf
|
|
|

13.12.2009, 23:54
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от Alexey2
А как бы ты реализовал по - другому...?
Ну например так
Код:
function proverk (a:array of integer):integer;
const seqLength = 3;
var
i:integer;
counter: integer;
begin
counter := 0;
for i:=0 to length(a) do
if a[i] mod 2 <> 0 then
begin
counter := counter + 1;
if(counter=seqLength) then
begin
proverk := i- seqLength + 1;
exit;
end
end
else
counter := 0;
proverk:=0;
end;
Последний раз редактировалось Algol; 14.12.2009 в 00:06..
|
|
|

14.12.2009, 00:24
|
|
Новичок
Регистрация: 12.12.2009
Сообщений: 13
Провел на форуме: 51050
Репутация:
0
|
|
Помогите пожалуйто реализовать на C++ следующее:
есть файл 1.txt
содержание:
есть файл 2.txt
содержание:
нухно из этих двух файлов получить файл 3.txt с содержанием:
Код:
1;a
1;ab
1;abc
12;a
12;ab
12;abc
123;a
123;ab
123;abc
...
Последний раз редактировалось Suliman36; 14.12.2009 в 00:27..
|
|
|

14.12.2009, 01:54
|
|
Новичок
Регистрация: 30.05.2009
Сообщений: 12
Провел на форуме: 69608
Репутация:
0
|
|
Algol и Thenno бальшущее спасибо 
|
|
|

14.12.2009, 08:38
|
|
Новичок
Регистрация: 22.02.2009
Сообщений: 12
Провел на форуме: 105413
Репутация:
4
|
|
помогите пожалуйста решить задачи

|
|
|

14.12.2009, 14:58
|
|
Участник форума
Регистрация: 08.11.2009
Сообщений: 114
Провел на форуме: 201148
Репутация:
-4
|
|
Помогите решить:
По заданной сетке букв рахмером m*x и списку слов определить позицию в сетке, в которой находится это слово. Слово в сетке может распологаться только по прямой непрерывной линии букв. Регистр букв значения для совпадения не имеет (т.е. строчные и прописные буквы считаются одинаковыми). Слово может распологаться в любом из 8 диагоналей, горизонтальных и вертикальных направлений.
Дается дв числа 1<=m,n<=50. Следующие m строк содержат ровно по n букв каждая. В сетке могут быть и прописные и заглавные буквы. Далее следует число k(при чем 1<=k<=20). Следующие К строк содержат список слов для поиска, одно слово в строке. Эти строки состоят из букв, никаких пробелов, дефисов и других симолов.
|
|
|

14.12.2009, 15:19
|
|
Новичок
Регистрация: 21.11.2006
Сообщений: 5
Провел на форуме: 29759
Репутация:
-1
|
|
Такой вопрос. 16 января экзамен по инфе(теория, язык C).
Кто мог бы (согласен даже за умеренную плату) находиться с утра в ICQ, дабы помочь?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|