Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 2 года назад.
Оформить функцию поиска номера максимального элемента массива среди отрицательных элементов, В главной программе Дано 3 одномерных массива a,b,c длиной 30 элементов каждый. применить функцию для каждого из 3-х заданных массивов. найти произведение найденных номеров максимальных элементов. (в функции не должно быть операторов ввода или вывода)
почему не работает максимальное отрицательное число?
#include "iostream"
#include "ctime"
#include "cstdlib"
using namespace std;
int s(int a[], int n)
{
int s=0;
int a_max=0;
for(int i=0;i > n;i++)
{
if (i < 0 && i < a_max)
a_max=i;
}
return a_max;
}
int main(){
const int n=30;
int a[n],b[n],c[n];
srand(time(NULL));
for(int i=0; i < n; i++)
cout<<(a[i]=rand()% 100 - 50)<<' ';
cout<< endl;
for(int i=0; i < n; i++)
cout<<(b[i]=rand()% 100 - 50)<<' ';
cout<< endl;
for(int i=0; i < n; i++)
cout<<(c[i]=rand()% 100 - 50)<<' ';
cout<< endl;
cout << "1---\t" << s(a,n) << endl << "2---\t" << s(b,n) << endl << "3---\t" << s(c,n) << endl;
}
вывод:
-1 29 29 -16 7 9 -37 30 -18 40 -47 3 -48 -10 44 35 22 34 -33 -11 -11 -18 41 -12 27 -40 39 3 -15 -39
-15 20 -30 -7 48 18 -1 11 33 -21 -48 -34 7 -37 -39 44 30 -30 -20 14 31 20 -6 37 10 -25 17 35 -41 -8
-11 12 12 -22 -11 -37 47 -33 16 0 40 -23 -33 -24 48 -28 -11 7 32 40 -46 -32 -41 26 40 -27 21 6 -9 17
1--- 0
2--- 0
3--- 0
У вас совершенно не верно реализована функция поиска максимума среди отрицательных.
Далее обычный поиск максимума Определенная проблема есть с тем, что в массиве может не быть отрицательного элемента, тогда его номер принимаем за -1
int numOfMax(int a[], int n)
{
int n_max=-1;
for(int i=0; i < n;i++)
{
if (a[i] < 0 ){
if (n_max==-1){n_max=i;}
else{
if (a[i]>a[n_max]){ n_max=i;}
}
}
}
return n_max;
}
using namespace std;
int main()
{
const int n=30;
int a[n],b[n],c[n];
srand(time(NULL));
for(int i=0; i < n; i++)
cout<<(a[i]=rand()% 100 - 50)<<' ';
cout<< endl;
for(int i=0; i < n; i++)
cout<<(b[i]=rand()% 100 - 50)<<' ';
cout<< endl;
for(int i=0; i < n; i++)
cout<<(c[i]=rand()% 100 - 50)<<' ';
cout<< endl;
cout << numOfMax(a,n)*numOfMax(b,n)*numOfMax(c,n);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Что-то всё работало, а потом поломався! Данными база заполненаВсё работало