IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Последовательность из 3-х элементов, Си
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Дана матрица А(55). Определить массив Х из 5 элементов, каждый из которых равен 1, если в соответствующем столбце есть возрастающая подпоследовательность из трех элементов и нулю в противном случае.

Что-то я снова понапутала....


int *mas_x (int (*a)[n], int *x)
{
int i,j, count, k;
for (j = 0; j < n; j++)
{
count = 0 ;
for (k = 0; k < n; k++)
for (i = 0; i < n-k-1; i++)
if (a[i][j] < a[i+1][j])
count+=1;
if (count == 3)
x[j] = 1;
else x[j] = -1;
}

return x;
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Уже разобралась, в чём была ошибка:

int *mas_x (int (*a)[n], int *x)
{
int i,j, count, k;
for (j = 0; j < n; j++)
{
count = 0 ;
for (k = 0; k < n; k++)
for (i = 0; i < n-k-1; i++)
if (a[i][j] < a[i+1][j])

count+=1;
else break;

if (count == 3)
x[j] = 1;
else x[j] = -1;

}

return x;
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Я бы так сделал:

# include <stdlib.h>
# include <stdio.h>

void CreateVector(int **mx, int *arr, int n) {
for (int j = 0; j < n; j++) {
int i = 0;
while ((i <= n - 3) && ! ((mx[i][j] < mx[i+1][j]) && (mx[i+1][j] < mx[i+2][j])))
i++;
arr[j] = (i <= n - 3) ? 1 : -1;
}
}

int n, *x, **m;

int main (void) {
n = 5;

x = (int*)malloc(n * sizeof(int));
m = (int**)malloc(n * sizeof(int*));

for (int i = 0; i < n; i++)
m[i] = (int*)malloc(n * sizeof(int));

srand(time(NULL));

for (i = 0; i < n; i++) {
printf("\n");
for (int j = 0; j < n; j++) {
m[i][j] = rand() % 10;
printf("%3d", m[i][j]);
}
}

CreateVector(m, x, n);

printf("\n\n");

for (i = 0; i < n; i++) printf("%3d", x[i]);

free(x);
for (i = 0; i < n; i++) free(m[i]);
free(m);

return 0;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 22:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name