Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что тут не так? Найти наименьший элемент и его порядковый номер. Найти сумму первых 10 и количество нечетных

Владимир Стадников Ученик (87), закрыт 9 месяцев назад
int a[50], sum, k; // массив

int min; // номер минимального элемента int i, n; // индекс массива и число элементов


cout << "Enter n (<50): ";

cin >> n; randomize();

cout<<"Array a:"<<endl;

for ( i = 0 ; i < n ; i++ ){


// заполняем массив случ. числами


a[i]=random(100);


cout << "a [ "<< i << " ] = " << a[i] << endl;


}

min =0; // предположим, что первый элемент - минимальный


for (i = 1; i < n; i++) // сравним все оставшиеся элементы с минимальным


if (a[i] < a[min]) min = i;


cout << "Мin element : \na [ "<< min << " ] = " << a[min];


k=sum=0;


if ( n > 10 ){


for ( i = 0; i < 10; i++ ){


sum=sum + a[i];


if ( a[i]% 2 ) k ++;


}

cout << "Sum = " << sum << endl; cout << "k = " << k << endl;


}
Лучший ответ
Андрей Высший разум (425884) 1 год назад
Количество нечётных ищется среди ВСЕХ элементов, а не только среди первых 10 - если ты адекватно пересказал задание.

Если кол-во элементов <= 10, то ты НЕ ищешь ни сумму, ни кол-во нечётных.
Остальные ответы
юрий юрий Профи (840) 1 год назад
Как я понял количество не четных кривое для начала если все нечетных то его бы надо в отдельный for , и он должен быть по сути вне проверки на n>=10 и еще, когда проверяешь на нечетность a[i] %2==1 или и так как у тебя работает?
Владимир СтадниковУченик (87) 1 год назад
в задании дана эта программа, нужно ее исправить
юрий юрийПрофи (840) 1 год назад
Ну тут как вопрос стоит скорее всего условие n>10 некорректно т к. Первые десять хотя тут непонятно. Но вообще создаешь еще один for(i=o; i<n; i++){
If(a[i] %2==1){k++;}

}
И если условие именно десятка то надо n>10 заменить на n>=10;
И еще randomize()в начале насколько я помню для трушного рандома в с++ берется библеотека компьютерног времени (time.h) и берется как сид для рандома.
юрий юрийПрофи (840) 1 год назад
А еще тут местами скобки{} отсутствуют
юрий юрийПрофи (840) 1 год назад
K=sum=0 тоже неправильно вроде
Krab Bark Искусственный Интеллект (283615) 1 год назад
В приведенном в вопросе варианте ошибка на ошибке и ошибкой погоняет...

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <numeric>
using namespace std;
int main(){
int *a,n,k=0,*j; cout<<"n(>=10): "; cin>>n; a=new int[n]; srand(time(NULL));
generate(a,a+n,[&k](){int i=rand()%100; return cout<<i<<' ',k+=i&1,i;}); j=min_element(a,a+n);
cout<<"\nmin=a["<<j-a+1<<"]="<<*j<<", sum10="<<accumulate(a,a+10,0)<<", k="<<k<<endl;}
Похожие вопросы