Приступая к решению задач, ознакомьтесь со статьями Массивы в 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 upper_limit = 14;
… % (const int upper_limit – const int 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, “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;
}
не весь код скопировался(
#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));
int 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;
}