Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
#1

Вывести минимальное нечетное число. Что не так? - C++

05.01.2013, 20:46. Просмотров 564. Ответов 9
Метки нет (Все метки)

Сейчас программа выводит любое минимальное число, будь-то четное или нечетное. Подскажите, пожалуйста, что исправить?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const int size=10;
 
    int ar[size]={8,36,69,45,13,12,49,5,67,26};
    int min=ar[0];
    
    for (int i=0; i<size; i++)
    {
        if (ar[i]!=0 && ar[i]<min)
            min=ar[i];
    }
    
 
    cout<<"Minimalnoe cislo="<<min<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 20:46     Вывести минимальное нечетное число. Что не так?
Посмотрите здесь:

C++ Дано вещественное число N(>0). Если N - нечетное число, то вывести произведение 1*3*...*N, если N - четное число, то вывести произведение 2*4*...*N
C++ что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей)
C++ Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию
Даны целые числа a1, a2,.a10. Верно ли, что их сумма есть нечетное число C++
C++ Разработать метод, который нечетное число заменяет на 0,а четное число уменьшает в два раза
C++ Вывести на экран, четное или нечетное число
Найти в массиве самое маленькое нечетное число и вывести его на экран C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
05.01.2013, 20:52     Вывести минимальное нечетное число. Что не так? #2
C++
1
if ((ar[i] % 2 != 0) && ar[i]<min)
или так
C++
1
if (ar[i]%2 && ar[i]<min)
Lookiing
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 39
05.01.2013, 22:09     Вывести минимальное нечетное число. Что не так? #3
не будет работать .

Добавлено через 12 минут
вот мой вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std ;
 
void main () 
{   
     
    int x , b , min = 10000000000 ;   
    
    cout << "Please enter numbers in array : " ; cin >> x ;
    int *a = new int [x] ;
 
    for (int i = 0 ; i < x ; i++)
    {
    cout << "Enter " << i << " element " ; 
    cin >> a[i] ; 
    }
    
    cout << endl ;
    for (int i = 0 ; i < x ; i++)
    {   
    b = a[i] % 2 ; 
    
    if (b != 0 && a[i] < min)
    min = a[i] ; 
    }
    cout << min ; 
    cin.get();
    cin.get();
}
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
05.01.2013, 22:19     Вывести минимальное нечетное число. Что не так? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main() {
    srand(time(0));
    const int size = 25;
    int arr[size], min = 0;
    
    std::cout << "Array: " << std::endl;
    for (int i = 0; i < size; i++) {
        std::cout << (arr[i] = rand() % 50) << " ";
        min = (arr[i] % 2) && (arr[i] < arr[min]) ? i : min;
    }
    std::cout << "\nMinimal: " << arr[min] << ";" << std::endl;
    
    system("pause");
    return 0;
}
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
06.01.2013, 00:36  [ТС]     Вывести минимальное нечетное число. Что не так? #5
Lookiing и Ev[G]eN спасибо за решение. Мне в них ничего непонятно, т.к. мы еще видимо этого не учили. Что мне можно исправить в моем решении, чтобы заработало? Если знаете, подскажите, пожалуйста. Заранее спасибо.
Нужно вывести минимальное нечетное число.
Lookiing
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 39
06.01.2013, 01:56     Вывести минимальное нечетное число. Что не так? #6
ну у тебя вроде надо исправить минимальное значение поставь его не ar[0] а просто какое нибудь большое число и проверку что это четное число или нет .

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const int size=10;
 
    int ar[size]={8,36,69,45,13,12,49,9,67,26};
    int min=100000000;
    
    for (int i=0; i<size; i++)
    {
        if (ar[i]%2 !=0 && ar[i]<min)
            min=ar[i];
    }
    
 
    cout<<"Minimalnoe cislo="<<min<<endl;
Добавлено через 35 секунд
вот сравни со своим и увидишь что изменилось.
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
06.01.2013, 02:15  [ТС]     Вывести минимальное нечетное число. Что не так? #7
Lookiing спасибо большое. Поняла
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.01.2013, 10:13     Вывести минимальное нечетное число. Что не так? #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main() {
    const int size=10;
    int ar[size]={8,36,69,45,13,12,49,5,67,26};
    int min=0;
    
    for (int i=0; i<size; i++)
    {
        if ((ar[i] % 2 != 0) && (ar[i]<ar[min]))
            min=i;
    }
    cout<<"Minimalnoe cislo="<<ar[min]<<endl;
    
    system("pause");
    return 0;
}

Не по теме:

Цитата Сообщение от Lookiing Посмотреть сообщение
int min=100000000;
доставляет

Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
06.01.2013, 10:18     Вывести минимальное нечетное число. Что не так? #9
Ev[G]eN, а если массив такой.

C++
1
int ar[size]={2,36,69,45,13,12,49,5,67,26};
Результат будет 2 - совсем нечетное число.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2013, 10:22     Вывести минимальное нечетное число. Что не так?
Еще ссылки по теме:

C++ Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию
В заданном массиве вывести следующее минимальное число после нуля C++
C++ Найти минимальное положительное число в заданном массиве, а если таких нет, вывести на экран ноль
C++ Переставить цифры числа так, чтобы получилось минимальное возможное число
Вывести минимальное число из трех заданных C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.01.2013, 10:22     Вывести минимальное нечетное число. Что не так? #10
пускай ТС клепает проверки. может хоть чему-то научится.
да и массив скорее задан по условию. для него программа и написана
Yandex
Объявления
06.01.2013, 10:22     Вывести минимальное нечетное число. Что не так?
Ответ Создать тему
Опции темы

Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru