Условие: (x % 4 == 0 and x % 100 != 0) or x % 400 == 0
Рассмотрим скобку x % 4 == 0 and x % 100 != 0:
and говорит о том, что обязательно должны выполняться оба этих условия: число должно быть кратно 4-м И не кратно 100
Вторая часть условия:
or говорит о том, что либо выполняется условие в скобке, либо то, которое идет после or:
число должно быть кратно 4-м И не кратно 100, ИЛИ число должно быть кратно 400
Пример чисел, которые удовлетворяют условию:
0
4
8
12
128
400
1600
Например, 200 не подойдет:
200 % 4 == 0 — да
200 % 100 != 0 — нет
200 % 400 == 0 — нет
(да И нет) ИЛИ нет = нет ИЛИ нет = нет
Две задачи в одной программе:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
cout << endl;
cout << "x > " << Z << ":" << endl;
int count = 0;
int sum = 0;
if (matrix[j][i] > Z)
count++;
if (matrix[i][j] < 0)
sum += matrix[i][j];
cout << setw(4) << count << ' ';
count = 0;
cout << "Sum: " << sum << endl;
return 0;
По отдельности:
1)
2)
Условие: (x % 4 == 0 and x % 100 != 0) or x % 400 == 0
Рассмотрим скобку x % 4 == 0 and x % 100 != 0:
x % 4 == 0 — число делится на 4 без остатка, т.е. кратно 4-мx % 100 != 0 — число не делится на 100 без остатка, т.е. не кратно 100and говорит о том, что обязательно должны выполняться оба этих условия: число должно быть кратно 4-м И не кратно 100
Вторая часть условия:
x % 400 == 0 — число делится на 400 без остатка, т.е. кратно 400or говорит о том, что либо выполняется условие в скобке, либо то, которое идет после or:
число должно быть кратно 4-м И не кратно 100, ИЛИ число должно быть кратно 400
Пример чисел, которые удовлетворяют условию:
0
4
8
12
128
400
1600
Например, 200 не подойдет:
200 % 4 == 0 — да
200 % 100 != 0 — нет
200 % 400 == 0 — нет
(да И нет) ИЛИ нет = нет ИЛИ нет = нет
Две задачи в одной программе:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
cout << "x > " << Z << ":" << endl;
int count = 0;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[j][i] > Z)
count++;
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
cout << setw(4) << count << ' ';
count = 0;
}
cout << endl;
cout << endl;
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}
По отдельности:
1)
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
cout << "x > " << Z << ":" << endl;
int count = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[j][i] > Z)
count++;
}
cout << setw(4) << count << ' ';
count = 0;
}
cout << endl;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
}
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}
2)
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
}
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}