Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. 4 ОП (Вариант 20)

.docx
Скачиваний:
0
Добавлен:
30.08.2024
Размер:
40.47 Кб
Скачать

Задание 1:

#include <stdlib.h>

#include <clocale>

#include <time.h>

#include <iostream>

#include <iomanip>

void ma(int *c, int n)

{

int *yc;

for (yc = c; yc < (c + n); yc++)

*yc = rand() % 100 - 50;

}

void pm(int *c, int n)

{

int i;

for (i = 0; i < n; i++, c++){

printf("%d",*c);

printf(" ");

}

}

int *ot(int *c, int n)

{

int *yc=c + 0;

int schet=0;

for (int i=0; i<n; i++)

{

if (*(c+i)<0)

{

yc=(c+i);

return yc;

break;

}

if (*(c+i)>0)

{

schet = schet + 1;

}

}

if (schet=n)

{

printf("\nОтрицательных элементов нет!");

}

}

int raz(int *c, int n, int *otr) {

int i;

int len=0;

for (i=0; (c+i) < otr; i++){

len=len + 1;

}

return len;

}

int main() {

setlocale(LC_ALL, "Russian");

srand(time(0));

int const n = 5;

int const n2 = 8;

int m[n];

int m2[n2];

int *col_l1, *col_l2;

int l_raz1, col_p1;

int l_raz2, col_p2;

ma(m, n);

ma(m2, n2);

printf("Массив 1:\n");

pm(m, n);

col_l1=ot(m, n);

printf("\nПоложение первого отрицательного элемента: %p\n", col_l1);

printf("Первый отрицательный элемент: %d\n", *(col_l1));

l_raz1=raz(m, n, col_l1);

printf("Количество элементов до первого отрицательного элемента %d\n", l_raz1);

col_p1=n - l_raz1 - 1;

printf("Количество элементов после первого отрицательного элемента: %d\n", col_p1);

printf("\nМассив 2:\n");

pm(m2, n2);

col_l2=ot(m2, n2);

printf("\nПоложение первого отрицательного элемента: %p\n", col_l2);

printf("Первый отрицательный элемент: %d\n", *(col_l2));

l_raz2=raz(m2, n2, col_l2);

printf("Количество элементов до первого отрицательного элемента %d\n", l_raz2);

col_p2=n2 - l_raz2 - 1;

printf("Количество элементов после первого отрицательного элемента: %d\n", col_p2);

}

Задание 2:

#include <stdlib.h>

#include <clocale>

#include <time.h>

#include <iostream>

#include <iomanip>

void ma(int *c, int n, int m)

{

for(int i = 0; i < n * m; i++){

*(c + i) = rand() % 100-50;

}

}

void pm(int* c, int n, int m){

int j=0;

int sum1=0,sum2=0,sum=0;

for(int i = 0; i < m * n; i++){

if (((i + 1) % m == 0) && (i<n*m/2)){

printf("%4d\n", *(c + i));

j+=m;

}

else{

if(((i + 1) % m == 0) && (i>n*m/2)){

printf("\x1B[32m%4d\033[0m\n", *(c + i));

j+=m;

sum1=sum1+*(c+i);

}

else{

if(((i<m/2+j) && (i<n*m/2)) || ((i+ 1>m/2+j) && (i>n*m/2))){

sum2=sum2+*(c+i);

printf("\x1B[32m%4d\033[0m", *(c + i));

}

else{

printf("%4d", *(c + i));

}

}

}

}

sum=sum+sum1+sum2;

printf("Сумма:%d",sum);

}

int main() {

setlocale(LC_ALL, "Russian");

srand(time(0));

int const n = 12;

int const m = 10;

int c[n][m];

ma(*c, n, m);

pm(*c, n, m);

}