Обучение/Помощь новичкам | c++ помощь с кодом
Есть код который выводит сумму 3 найменьших положительных чисел массива, проблема в том если в массив вписать отрицательные числа то программа не будет работать... Как это исправить???
вот код
#include<iostream>
using namespace std;
int main( void )
{
int i,x[10];
int min = 10, min2 = 10, min3 = 10;
cout<<"Введите массив: ";
for(i=0;i<10;i++)
cin>>x[i];
// найдём наименьшее значение
min = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min])
min = i;
// найдём следующее наименьшее
min2 = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min2] && i != min )
min2 = i;
// найдём следующее наименьшее
min3 = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min3] && i != min && i != min2)
min3 = i;
// выведем результат
if( x[min] > 0 && x[min2] > 0){
if(x[min3] > 0){
cout << "Сумма найменьших положительных"
<< " = " << x[min] + x[min2] + x[min3]<< endl;
}
}
return 0;
}
вот код
#include<iostream>
using namespace std;
int main( void )
{
int i,x[10];
int min = 10, min2 = 10, min3 = 10;
cout<<"Введите массив: ";
for(i=0;i<10;i++)
cin>>x[i];
// найдём наименьшее значение
min = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min])
min = i;
// найдём следующее наименьшее
min2 = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min2] && i != min )
min2 = i;
// найдём следующее наименьшее
min3 = 10;
for( i = 0; i < 10; ++i )
if ( x[i] < x[min3] && i != min && i != min2)
min3 = i;
// выведем результат
if( x[min] > 0 && x[min2] > 0){
if(x[min3] > 0){
cout << "Сумма найменьших положительных"
<< " = " << x[min] + x[min2] + x[min3]<< endl;
}
}
return 0;
}
482542053 , я бы вот так делал, через пузырьковую сортировку
________
посл. ред. 04.12.2020 в 22:52; всего 1 раз(а); by steel97
#include <iostream>
using namespace std;
int main()
{
const int arraySize = 10;
int array[arraySize];
cout << "Введите массив" << endl;
for (int i = 0; i < arraySize; i++)
cin >> array[i];
// сортируем массив по возрастанию
for (int j = 1; j < arraySize; j++)
{
bool found = false;
for (int i = 0; i < arraySize - j; i++)
{
if (array[i] > array[i + 1])
{
int arrI = array[i + 1];
array[i + 1] = array[i];
array[i] = arrI;
found = true;
}
}
if (!found)
break;
}
int positiveSum = 0;
int fcnt = 0;
for (int i = 0; i < arraySize; i++)
{
if (array[i] > 0)
{
positiveSum += array[i];
fcnt++;
if (fcnt == 3)
break;
}
}
if (fcnt == 3)
cout << "Сумма наименьших положительных: " << positiveSum << endl;
else
cout << "В массиве нет трех положительных чисел" << endl;
return 0;
}
________
посл. ред. 04.12.2020 в 22:52; всего 1 раз(а); by steel97