
C/C++
Помоги написать лабу по программированию на c++
Помогите написать лабу по программированию на c++ !! Может кто хорошо разбирается?)


#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int sum = 0, i_max = 0, i_min = 0;
const int N = 10;
int A[N];
srand(time(NULL));
for(int x = 0; x < N; x++)
{
A[x] = rand() % 11;
cout << A[x] << ' ';
if(A[x] > A[i_max]) i_max = x;
if(A[x] < A[i_min]) i_min = x;
}
if(i_max > i_min)
{
for(int x = i_min + 1; x < i_max; x++)
sum += A[x];
}
else
{
for(int x = i_max + 1; x < i_min; x++)
sum += A[x];
}
cout << endl << endl << sum << endl;
return 0;
}
#include <ctime>
using namespace std;
int main()
{
int sum = 0, i_max = 0, i_min = 0;
const int N = 10;
int A[N];
srand(time(NULL));
for(int x = 0; x < N; x++)
{
A[x] = rand() % 11;
cout << A[x] << ' ';
if(A[x] > A[i_max]) i_max = x;
if(A[x] < A[i_min]) i_min = x;
}
if(i_max > i_min)
{
for(int x = i_min + 1; x < i_max; x++)
sum += A[x];
}
else
{
for(int x = i_max + 1; x < i_min; x++)
sum += A[x];
}
cout << endl << endl << sum << endl;
return 0;
}
Ильдар Хайруллин
У программы есть недостаток -- она ищет только первые максимальный и минимальный элементы без учёта, что они могут повторяться. И тогда в промежуток между ними может попасться одно из этих чисел и посчитаться в сумму.
#include <iostream>
#include <array>
using namespace std;
int sum(const array<int, 10U>& box) {
auto min = 0U;
auto max = 0U;
for (auto i = 1U; i < box.size(); ++i) {
if (box[i] < box[min]) min = i;
if (box[i] > box[max]) max = i;
}
if (min > max) swap(min, max);
auto sum = 0;
while (++min < max) sum += box[min];
return sum;
}
int main() {
array<int, 10U> box{ 23, 98, 46, 52, 39, 19, 17, 56, 42, 66 };
for (auto x : box) cout << x << ' ';
puts("");
auto s = sum(box);
cout << "sum: " << s << '\n';
system("pause > nul");
}
#include <array>
using namespace std;
int sum(const array<int, 10U>& box) {
auto min = 0U;
auto max = 0U;
for (auto i = 1U; i < box.size(); ++i) {
if (box[i] < box[min]) min = i;
if (box[i] > box[max]) max = i;
}
if (min > max) swap(min, max);
auto sum = 0;
while (++min < max) sum += box[min];
return sum;
}
int main() {
array<int, 10U> box{ 23, 98, 46, 52, 39, 19, 17, 56, 42, 66 };
for (auto x : box) cout << x << ' ';
puts("");
auto s = sum(box);
cout << "sum: " << s << '\n';
system("pause > nul");
}
Aram Antonian
Спасибо!
Похожие вопросы
- Помогите решить задачу по программированию на C++
- Помогите с заданием по программированию язык C(не С++)
- Помогите сделать задание по программированию на C++
- Программирование на C++
- Программирование на C++
- Помогите с программированием на C++
- Программирование на C. Помогите бездарю
- Программирование на C++ .Помогите написать код.
- Помогите написать программу на C++ Нето мои знания по программированию равны 0 а зачёт нужен
- Помогите написать программу на C++