Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Правильно ли я решил задачу с++

ахахахах ахахахах Мастер (1457), закрыт 1 неделю назад
А то че то уж слишком слабо различаются рандомные результаты#include <iostream>
#include <ctime>

using namespace std;

int main() {
setlocale(LC_ALL, "RU");
srand(time(nullptr));

int arr1[40];
int arr2[40];
int arr3[40];

for (int i = 0; i < 40; i++) {
arr1[i] = rand() % 21 + 10;
arr2[i] = rand() % 21 + 10;
arr3[i] = arr1[i] + arr2[i];
}

int sum = 0;
int max = 0;
int min = 0;

for (int i = 0; i < 40; i++) {
sum = sum + arr3[i];
}

for (int i = 0; i < 40; i++) {
if (arr3[i] > max) { max = arr3[i]; }
}

for (int i = 0; i < 40; i++) {
if (arr3[i] < min) { min = arr3[i]; }
}

cout << sum / 40 << endl;
cout << "Максимальное значение = " << max << ", минимальное = " << min << endl;

return 0;
}
Дополнен 1 месяц назад
заметил, что с min у меня неправильно
Лучший ответ
Ксения Райт Гений (86825) 1 месяц назад
Я б как-нибудь так сделала:
 #include  
#include
#include
#define R rand() % 21 + 10
using namespace std;
void print(string s, int X [], int size)
{ cout << endl << s; for (int i = 0; i < size; ++i)
cout << X[i] << ' '; cout << endl; }
int main()
{
double s;
int i, n, maxi, mini;
setlocale(LC_ALL, "RU");
srand(time(nullptr));
cout << "Размер массивов: "; cin >> n;
int *A = new int[n], *B = new int[n], *C = new int[n];
A[0] = R; B[0] = R; mini = maxi = s = C[0] = A[0] + B[0];
for (int i = 1; i < n; i++)
{
A[i] = R; B[i] = R; C[i] = A[i] + B[i]; s += C[i];
if (C[i] > maxi) maxi = C[i]; if (C[i] < mini) mini = C[i];
}
print("A: ", A, n); print("B: ", B, n); print("C: ", C, n);
cout << "Среднее: " << s / n << endl;
cout << "Максимальное значение: " << maxi <<
"\nМинимальное значение: " << mini << endl;
}
А если сделать длину массивов в 10 раз больше, то итоговые результаты действительно не так уж и сильно отличаются:
ахахахах ахахахахМастер (1457) 1 месяц назад
Мне кажется, слишком намудрённо. Но, возможно, вам так удобнее
Остальные ответы
Николай Веселуха Высший разум (360961) 1 месяц назад
Почти, да, но есть нюансы...
 #include 
#include
#include

#define RAND(min, max) (rand() % ((max) - (min)) + (min))

using namespace std;
using T = int;

int main() {
setlocale(LC_CTYPE, "RU");
srand(static_cast(time(nullptr)));

constexpr size_t n = 40;

T arr1[n]{};
T arr2[n]{};
T arr3[n]{};

constexpr auto left = 10;
constexpr auto right = left + n;

for (auto& x : arr1) {
x = RAND(left, right);
cout << x << ' ';
}
cout.put('\n');

for (auto& x : arr2) {
x = RAND(left, right);
cout << x << ' ';
}
cout.put('\n');

for (size_t i = 0; i < n; ++i) {
arr3[i] = arr1[i] + arr2[i];
cout << arr3[i] << ' ';
}
cout.put('\n');

auto sum = 0.0;
auto max = left;
auto min = right;

for (auto x : arr3) {
sum += x;
if (x > max) max = x;
if (x < min) min = x;
}

const auto avg = sum / n;

cout << "Среднее арифметическое третьего массива: " << avg << '\n'
<< "Максимальное значение: " << max << '\n'
<< "Минимальное значение: " << min << endl;
}
name noУченик (44) 1 месяц назад
Помогите пожалуйста с с++ в профиле https://otvet.mail.ru/profile/id287404410/
Похожие вопросы