Member 12825381 Ответов: 3

Код C++, принимающий элемент из массива и выводящий максимальное нечетное число


i write c++ code that  accept element from array and print the max odd number location 


Что я уже пробовал:

#include <iostream>

using namespace std;
int main()
{
int a[5];
int i;
int c[5];
int j;
cout<<"enter the numbers"<<endl;
for(i=0;i<=5;i++)
{
cin>>a[i];
}
cout<<"\nThe result is:\n";
for(i=0;i<=5;i++)
{
if(a[i]%2!=0)
c[i]=a[i];
}
//}
for(int i=0;i<=5;i++)
for(int j=i+1;j<5;j++)
{
if(c[i]>c[j])
{
int temp;
temp=c[i];
c[i]=c[j];
c[j]=temp;

}

}
//for(int i=0;i<5;i++)
    cout<<c[i+1]<<endl;
}

Patrice T

а у вас есть вопрос или проблема ?

3 Ответов

Рейтинг:
1

Jochen Arndt

Какой у вас вопрос?

Вы получили ошибки компилятора, ошибки времени выполнения или он работает не так, как ожидалось?

Однако есть некоторые проблемы с вашими массивами. Я предлагаю еще раз прочитать ваш курсовой материал или учебник по массивам.

У вас есть массивы с фиксированным размером 5 элементов. Таким образом, вы можете получить доступ к элементам с индексами от 0 до 4. Но ваши циклы работают до индекса 5, хранящего и считывающего 6 элементов. Это может привести к нарушению доступа во время выполнения или привести, по крайней мере, к неправильным результатам.

Вы также инициализируете c массив с нечетными входными значениями, но пусть четные элементы неинициализированы. Вы должны инициализировать все элементы c массив с нулем.

Наконец-то вы печатаете c[i+1] после i был использован в качестве счетчика циклов. Подумайте о том, какую ценность имеет i после того, как цикл закончится.


Рейтинг:
0

Patrice T

Ты не задал ни одного вопроса.

Помимо проблем, как в решении 4, Вы никогда не проверяли, есть ли в списке хотя бы нечетное число, прежде чем дать ответ.
Использование неинициализированных переменных или массивов также является плохой практикой.

Просто совет: научитесь правильно делать отступы в коде,это помогает читать.

#include <iostream>

using namespace std;
int main()
{
    int a[5];
    int i;
    int c[5];
    int j;
    cout<<"enter the numbers"<<endl;
    for(i=0;i<=5;i++)
    {
        cin>>a[i];
    }
    cout<<"\nThe result is:\n";
    for(i=0;i<=5;i++)
    {
        if(a[i]%2!=0)
            c[i]=a[i];
    }
    //}
    for(int i=0;i<=5;i++)
        for(int j=i+1;j<5;j++)
        {
            if(c[i]>c[j])
            {
                int temp;
                temp=c[i];
                c[i]=c[j];
                c[j]=temp;
            }
        }
    //for(int i=0;i<5;i++)
    cout<<c[i+1]<<endl;
}


Рейтинг:
0

Member 13372088

hi include <iostream>

использование пространства имен std;
тап_п()
{
int a[5];
int i;
int c[5]={0};

cout<< "введите цифры" < & lt;endl;
для(i=0;i<=5; i++)
{
cin>> a[i];
}
соиь<&ЛТ;"\результат пдействие:\Н";
int j=0;
для(i=0;i<=5; i++)
{
если (a[i]%2!=0)
c[j]=a[i];
Дж++;
}
//}
int g=c[0];
int p=0;
for (int i=0;i< j; i++)
если (g< c[i])
{
g=c[i];
p=i;
}
}
cout<< p< & lt;endl;
}