Приступая к решению задач, ознайомтеся зі статтями Массиви в C++ і Генератор випадкових чисел rand(), если еще не читали их. Постарайтеся вирішувати запропоновані завдання самостійно і дивитися наші рішення тільки в крайньому випадку.
1. Создать массив типа int на 10 елементів і заповнити його випадковими числами від 7 до 14. Після заповнення перезаписати всі числа, які більше десяти: від закладеного значення відняти 10. Наприклад в осередку зберігається число 12: 12 – 10 = 2. Записать в эту ячейку 2 Записывая новое значение, используйте складові(комбіновані) оператори.
2. Заполнить массив из 50-ти элементов нечётными числами от 1 до 99. (используйте операцию остаток от деления, чтобы проверить число на чётность)
3. Объявить три массива. Перші два заповнити випадковими значеннями від 10 до 30. В елементи третього масиву записати суму відповідних елементів перших двох масивів. (в нулевую ячейку третьего – сумму нулевых ячеек первого и второго массивов и так далее). Затем найти среднее арифметическое элементов третьего массива, максимальное значение и минимальное значение, которые он хранит.
І ще раз не залік. На цей раз ще й тому, хто завдання придумував. Звідки накапали термін “комбіновані оператори” – не власними випадково придумали? – ні в одній книжці я такого не зустрічав.
ourArr[i] = 7 + rand() % 8;
Це погано, ви ж недавно писали статтю про правильне оформлення коду. 100% угод про кодування які я читав забороняють використання “магічних констант”, ваші 7 і 8 є саме ними. Если 7 зустрічається в умови, то можна залишити, але 8 треба переписати.
Const INT lower_limit = 7;
Const INT верхняя_граніца = 14;
… % (Const ІНТ верхняя_граніца – Const ІНТ lower_limit + 1)
І коментар в цей фрагмент можна дописати, т.к. все одно не очевидно чому +1.
ourArr[i] -= 10; // віднімаємо 10
А ось тут коментар можна (потрібно) Хіба ж не писав. За багатьма угодами про кодування коментарі взагалі не заохочуються, т.к. застарівають (код ви зміните, а коментар не забудете?). Коментар не повинен бути зайвим, не повинен повторювати код і повинен пояснювати тільки не очевидні моменти. Це спірний момент для будь-яких javadoc / doxygen, але у вашому випадку він очевидно зайвий.
У третій задачі заміни “аналогічних елементів ” на “відповідних елементів” (можна спробувати більш підходяще слово придумати)
в умові завдання 2 не сказано що числа мають бути випадковими)) у мене вийшло так:
int main(){
int aMass[50], p=0;
for(int i=1; i<100; i++) {
if(i%2 != 0) {
aMass[p] = i;
p++;
}
}
for(int i=0; i<50; i++) cout <<aMass[i] <<' ';
cout <<endl;
system("pause");
return 0;
}
а навіщо в 2 завданню 14 рядок:
srand(time(NULL));
а ось почитай в статті про генератор випадкових чисел: https://purecodecpp.com/archives/1012
int massiv1[30]={};
int massiv2[30]={};
int massiv3[30]={};
int max=1, min=0,sum=0,count=0;
float sredarifm=0;
srand(time(NULL));
for (int i = 0; i 0)
{
if (massiv3[i]>max)
{
max=massiv3[i];
}
if (massiv3[i]<min)
{
min=massiv3[i];
}
}
}
sredarifm=static_cast(sum)/count;
cout<<"Maksimalnoe znachenie = "<<max<<'\n';
cout<<"Minimalnoe znachenie = "<<min<<'\n';
cout<<"Sredne-arifmeticheskoe znachenie = "<<sredarifm;
легкі, але цікаві завдання, а ваші рішення ещі і дуже елегантні. Не знаю, чого той чувак до вас докапаться, мені особисто дуже сподобалося. Дякую)
завдання №1
#include
#include
using namespace std;
int main(){
setlocale(LC_ALL, “російський”);
ІНТ розмір Const = 10;
int array[size];
ІНТ random_value, FIRST_VALUE, last_value;
cout << "Задайте начальное значение и ширину диапазона: " <> FIRST_VALUE >> last_value;
for (int i = 0; i = 10){
random_value - = 10;
}
array[i] = random_value;
}
for (int i = 0; i < size; i ) {
cout << array[i] << " ";
}
system("pause");
return 0;
}
не весь код скопіювали(
#include
#include
#include
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int const size = 10;
int array[size];
int random_value, first_value, last_value;
cout << "Задайте начальное значение и ширину диапазона: " <> first_value >> last_value;
for (int i = 0; i = 10){
random_value -= 10;
}
array[i] = random_value;
}
for (int i = 0; i < size; i++) {
cout << array[i] << " ";
}
system("pause");
return 0;
}
завдання №3
#include
#include
#include
#include
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
srand(time(NULL));
bool exit = true;
bool exit1 = true;
int const size = 15;
int minNum = 100;
int maxNum = 0;
int sum = 0;
int change;
int average;
int array1[size], array2[size], array3[size];
int first_value, last_value;
cout <> first_value >> last_value;
if (last_value > first_value)
exit = false;
if (last_value < first_value)
cout << "Введите првильно диапазон: ";
} while (exit);
for (int i = 0; i maxNum)
maxNum = array3[i];
if (array3[i] < minNum)
minNum = array3[i];
sum += array3[i];
}
do {
cout << "\nХотите вывести массив на экран?(1-3)\nВыход(4)" <> change;
switch (change) {
case 1:cout << "Первый массив:" << endl;
for (int i = 0; i < size; i++) {
cout << array1[i] << " | ";
}
break;
case 2:cout << "\nВторой массив:" << endl;
for (int i = 0; i < size; i++) {
cout << array2[i] << " | ";
}
break;
case 3:cout << "\nТретий массив:" << endl;
for (int i = 0; i < size; i++) {
cout << array3[i] << " | ";
}
break;
case 4:
exit1 = false;
break;
default:
cout << "Введите правильный номр массива(1-3)" << endl;
break;
}
} while (exit1);
average = sum / size;
cout << "\nСреднее арефметическое: " << average << endl;
cout << "Минимальное значение: " << minNum << endl;
cout << "Максимальное значение: " << maxNum << endl;
system("pause");
return 0;
}
завдання №3.
У мене вийшло ось так:
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “”);
srand(time(NULL));
ІНТ iArray1[10] = {}, iArray2[10] = {}, iArray3[10] = {};
INT iMaxArray3 = 0, iMinArray3 = 31, iSumma = 0;
for (int j = 0; j < 10; j )
{
iArray1[j] = 10 + rand() % 21;
cout << iArray1[j] << " ";
}
cout << endl << endl;
for (int j = 0; j < 10; j )
{
iArray2[j] = 10 + rand() % 21;
cout << iArray2[j] << " ";
}
cout << endl << endl;
for (int i = 0; i < 10; i )
{
iArray3[i] = iArray1[i] +iArray2[i];
cout << iArray3[i] << " ";
}
cout << endl << endl;
for (int i = 0; i < 10; i )
{
iSumma + = iArray3[i];
if (iArray3[i] iMaxArray3)
iMaxArray3 = iArray3[i];
}
cout << " Середнє арифметичне = " << iSumma / 10 << endl;
cout << " Максимум = " << iMaxArray3 << endl;
cout << " Минимум = " << iMinArray3 << endl;
system("pause");
return 0;
}