Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadachi_Po_Aip.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆

Void main()

{register int i,fact=1,j;

printf("Vvedite i\n");

scanf("%d",&i);

for(j=i;j>=1;j--)

fact=fact*j;

printf("Fact=%d\n",fact);}

Лабораторная № 22(29,30,31)

Написать программу нахождения суммы четных положительных элементов и нечетных положительных, а также произведение положительных. Массив заполняется пользователем с клавиатуры. Результат вывести на экран.

#include <stdio.h>

#include <iostream>

#include <locale>

const int n=3;

int func1 (int arr[n][n], int n);

int func2 (int arr[n][n], int n);

int func_pr (int arr[n][n], int n);

Void main()

{

setlocale (LC_ALL, "Rus");

int arr[n][n], *p, i, j;

p=&arr[0][0];

printf ("Введите массив\n");

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

{

for (j=0; j<n; j++,p++)

{

scanf ("%d", p);

}

}

printf ("Сумма нечетных положительных элементов равна %d\n", func1(arr, n));

printf ("Сумма четных положительных элементов равна %d\n", func2(arr, n));

printf ("Сумма положительных элементов равна %d\n", func_pr(arr, n));

}

int func1 (int arr[n][n], int n)

{

int i, j, sum=0, *p;

p=&arr[0][0];

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

{

for (j=0; j<n; j++,p++)

{

if ((*p%2)&&(*p>0))

{

sum=sum+*p;

}

}

}

return (sum);

}

int func2 (int arr[n][n], int n)

{

int i, j, sum=0, *p;

p=&arr[0][0];

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

{

for (j=0; j<n; j++,p++)

{

if ((*p%2==0)&&(*p>0))

{

sum=sum+*p;

}

}

}

return (sum);

}

int func_pr (int arr[n][n], int n)

{

int i, j, pr=1, *p;

p=&arr[0][0];

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

{

for (j=0; j<n; j++,p++)

{

if (*p>0)

{

pr=pr**p;

}

}

}

return (pr);

}

№9 стр 21

Написать программу нахождения в заданной матрице седловой точки. Седловая точка - это максимальный элемент в столбце и одновременно минимальный в строке.

#include <stdio.h>

#include <iostream>

#include <locale>

const int n=3;

void func_str_min (int arr[n][n], int *b[n], int n);

void func_stl_max (int arr[n][n], int *k[n], int n);

Void main()

{

setlocale (LC_ALL, "Rus");

int arr[n][n], *p, *u1[n], *u2[n], i, j;

p=&arr[0][0];

printf ("Введите массив\n");

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

{

for (j=0; j<n; j++,p++)

{

scanf ("%d", p);

}

}

p=&arr[0][0];

func_str_min (arr,u1,n);

p=&arr[0][0];

func_stl_max (arr,u2,n);

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

{

for (j=0; j<n; j++)

{

if (u1[i]==u2[j])

{

printf (" Элемент [%d][%d]=%d является седловой точкой\n", i, j,*u1[i]);

}

}

}

}

void func_str_min (int arr[n][n], int *b[n], int n)

{

int min, i, j;

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

{

min=*(*(arr+i)+0);

b[i]=&arr[i][0];

for (j=0; j<n; j++)

{

if (min>*(*(arr+i)+j))

{

min=*(*(arr+i)+j);

b[i]=&arr[i][j];

}

}

}

}

void func_stl_max (int arr[n][n], int *k[n], int n)

{

int max, i, j;

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

{

max=*(*(arr+0)+i);

k[i]=&arr[0][i];

for (j=0; j<n; j++)

{

if (max<(*(*(arr+j)+i)))

{

max=*(*(arr+j)+i);

k[i]=&arr[j][i];

}

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]