-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvariant39.cpp
77 lines (73 loc) · 3.03 KB
/
variant39.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main() { //от тук започва главната функция на програмата
SetConsoleOutputCP(1251); //активира кирилицата в конзолата
int N, M; //създадохме променливи, в които ще вкараме бройката на редовете и стълбовете
/*
* с цикъл do-while ще следим дали въведеното числа за редове и стълбове влизат в интервала [2,6]
*/
do
{
printf("Въведете броят на редовете (цяло число в интевал [2,6]): ");
scanf("%d", &N); //въвеждаме стойност цяло число за N от конзолата след горния надпис
}while(N<=2 || N>=6);
do
{
printf("Въведете броят на стълбовете (цяло число в интевал [2,6]): ");
scanf("%d", &M); //въвеждаме стойност цяло число за N от конзолата след горния надпис
}while(M<=2 || M>=6);
/*
* while(N<=2 || N>=6); - така следим дали въведеното число не е
* по-малко или равно от 2 или по-голямо или равно от 6
* и ако е, ще ни кара да въвеждаме стойност наново, т.е. ще изпълнява цикъла докато
* не въведем число в интевала от 2 до 6 (т.е. м/у 2 и 6, но без 2 и 6)
*/
float A[N][M]; //двумерен масив с реални(дробни) числа,който има N на бр редове и M бр стълбове
printf("\nВъведете елементите на двумерния масив A:\n");
//следва цикъл в цикъл за обхождане и въвеждане на елементите на целия масив:
for(int i=0; i<N; i++)
{
for(int j=0; j<M; j++)
{
printf("A[%d][%d]= ", i, j); //изписва A[0][0]=, A[0][1]=, A[0][2]= и т.н.
scanf("%f", &A[i][j]); //въвеждаме стойност за елемент на масива от клавиатурата
}
}
int counter=0; //ще служи за брояч на отрицателните елементи на масива
float max=A[0][0], min=A[0][0]; //променливи, които по-късно ще съдържат стойността на
//максималния и минималния елемент от масива, но първо го обхождаме и ги намираме:
for(int i=0; i<N; i++)
{
for(int j=0; j<M; j++)
{
if(A[i][j]>max) max=A[i][j]; //ако елемента е > от max, то max ще приеме стойността му
if(A[i][j]<min) min=A[i][j]; //ако елемента е < от min, то min ще приеме стойността му
if(A[i][j]<0) counter++; //когато намери отрицателен елемент добавя едно към брояча
}
}
float sum = max+min;
printf("\nСумата на минималния и максималния елемент е равна на %f\n", sum);
float B[counter]; //масив с counter на брой елементи т.е. броя на отрицателните елементи
int br=0; //ще служи за брояч на индексите на масив B, когато задаваме стойностите на елементите
//обхождаме масив A за да присвоим отрицателните елементите от A на екементите от B:
for(int i=0; i<N; i++)
{
for(int j=0; j<M; j++)
{
if(A[i][j]<0)
{
B[br]=A[i][j];
br++;
}
}
}
printf("\nМасив B, съдържащ само отрицателните елементи на масив A, изглежда така:\n");
for(int i=0; i<counter; i++) //цикъл for за обхождане на масив B
{
printf("%f\t", B[i]); //принтване стойностите на елементите на масив B таблично
} printf("\n\n");
//Когато използваме \n в printf това означава нов ред след него.
system("pause"); //задържа конзоалта до натискането на клавиш (Press any key to continue . . .)
return 0; //връща стойност 0 от главната функция на програмата (просто добър навик за писане)
}