Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2017, 11:23   #1
Rainbow_
Пользователь
 
Регистрация: 18.03.2017
Сообщений: 35
По умолчанию найти наименьшее нечетное число в массиве

Здравствуйте! Написала программу для наименьшего нечетного числа массива, а она мне наибольшее нечетное показывает! Помогите, пожалуйста!
Код:
#include <iostream>
using namespace std;
void main()
{
	const int size=10;
	int ar[size];
	for (int i=0;i<size; i++)
	{
	cout<<"Enter element\n";
	cin>>ar[i];
	}
	cout<<"\n\n";

int min=0;
for (int i=0;i<size;i++)
	
	{if (ar[i]%2)
		min=ar[i];
	if (ar[i+1]<ar[i]&&ar[i+1]%2)
		min=ar[i+1];
	}
				
cout<<min<<" "<<"\n";	
	
	}
Rainbow_ вне форума Ответить с цитированием
Старый 08.06.2017, 11:35   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

У вас программа вообще фиг знает, что ищет. И вам повезло, что это совпало с
Цитата:
наибольшее нечетное
Код:
if (ar[i+1]<ar[i]&&ar[i+1]%2)
Зачем вы на каждой итерации переустанавливаете начальное значение минимума?
Почему вы сравниваете следущий элемент с предыдущим, а не с текущим минимумом?
Почему у вас цикл до size, если вы пытаетесь к +1 элементу обращаться?
p51x вне форума Ответить с цитированием
Старый 08.06.2017, 11:36   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

что-то Вы вообще не то творите!

я бы такой код предложил:

Код:
int minIndex=-1;
for (int i=0;i<size;i++){
   if (ar[i]%2==1){ // если значение нечётное, то
      if(minIndex<0) // ещё не было нечётных, поэтому 
        minIndex=i;  // запоминаем индекс найденного числа, как минимальное
      else // уже в цикле были нечётные 
        if(ar[i]<ar[minIndex]) // и если это число меньше, чем то, чей индекс запомнили, то
           minIndex=i;         // запомнили индекс этого числа, как нового минимального
   }    
}
if(minIndex<0)			
   cout<<"нет нечётных чисел в массиве"<< endl;	
else
   cout<<"минимальное нечётное ="<<ar[minIndex]<< endl;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2017, 11:45   #4
Rainbow_
Пользователь
 
Регистрация: 18.03.2017
Сообщений: 35
По умолчанию

Cпасибо большое, вроде, понемногу доходит.
Rainbow_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти первое нечетное число Smile189 Общие вопросы Delphi 0 08.10.2016 17:33
Задано натуральное число N. Найти наименьшее и наибольшее число, состоящее из тех же цифр и в таком же количестве, что и N dimon_snake Паскаль, Turbo Pascal, PascalABC.NET 9 17.11.2015 23:38
C++ В квадратном массиве из n строк, где n— нечетное число, все элементы различны GoloArt Помощь студентам 0 21.05.2014 21:14
два натуральных числа. Верно ли, что их наименьшее общее кратное есть нечетное число monokol Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2011 15:53