- 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
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
#include "pch.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int n=0, m=0, a[10][10];
void inputSize();
void input();
void out(int);
void problem();
bool just(int);
void menu();
int main()
{
setlocale(0, "rus");
menu();
return 0;
}
void inputSize() {
system("cls");
cout << "количество строк = "; cin >> n;
cout << "количество столбцов = "; cin >> m;
}
void input() {
system("cls");
if (n == 0 || m == 0) {
cout << "размер массива задан по умолчанию: 3х3";
n = m = 3;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << "a[" << i + 1 << "][" << j + 1 << "] = "; cin >> a[i][j];
}
}
}
void out(int x = 0 ) {
system("cls");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << setw(7) << a[i][j];
}
cout << endl;
}
cout << endl;
system("pause");
}
void problem() {
system("cls");
int sum = 0, k = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (just(a[i][j])) {
cout << "a[" << i + 1 << "][" << j + 1 << "] ";
sum += a[i][j];
k++;
}
}
}
if (sum == 0) cout << "нет простых чисел";
else if (sum % k == 0) cout << "ср. арифм. - целое"; else cout << "ср. арифм - не целое";
_getch();
}
bool just(int n) {
if (n == 1)return false;
int c = sqrt(n);
for (int i = 2; i <= c; i++) if (n%i == 0) return false;
return true;
}
void menu() {
system("cls");
int ch = 0;
while (ch != 5) {
cout << " МЕНЮ\n\n";
cout << "1. ввод размера массива\n";
cout << "2. ввод массива\n";
cout << "3. вывод массива\n";
cout << "4. решение задачи\n";
cout << "5. выход\n\n";
cout << ">>"; cin >> ch;
if (ch == 1) inputSize();
if (ch == 2) input();
if (ch == 3) out();
if (ch == 4) problem();
if (ch == 5) break;
system("cls");
}
}
ахахаха
> cout << "a[" << i + 1 << "][" << j + 1 << "] = "; cin >> a[i][j];
тот неловкий момент, когда лучше принтф
Вообще крестоблядские стримы уродливы, а printf и scanf хорошие:илиКрасиво же!
Единственный минус — строка формата парсится в рунтиме, но сдругой стороны это и плюс: её можно составлять демоничски.
https://en.cppreference.com/w/cpp/io/manip
std::fixed, std::dec, std::hex ведь проще выучить, чем %f, %d, %x.
std::cout << std::setprecision(2) << pi; понятнее, чем printf("%f.2", pi);
std::cout << std::setfill('0') << std::setw(8) << count; понятнее, чем printf("%08d", count);
СПИДоРашка
А CPP... хм.
изучаем настроечные таблицы
почему в крестах у купирующего конструктора можно опустить конст и поменять состояние переданного аргумента?
можно написить класс, который при просто передаче по значению в любую функцию будет портица