С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
#1

Дано три числа. Среди отрицательных найти четные, среди положительных - нечетные - C++

20.01.2014, 21:50. Просмотров 919. Ответов 32
Метки нет (Все метки)

дано три действительных числа. среди отрицательных найти парные, среди положительных непарные.
вот я решила немного. но выбивает ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
int main()
{
    float x,y,z;
    printf("vvedite tri chisla\n");
    scanf("%f%f%f",&x,&y,&z);
 
    if (((x<0)&&(x%2==0))||((x>0)&&(x%2!=0))) printf("x=%f\n",x);
    if (((y<0)&&(y%2==0))||((y>0)&&(y%2!=0))) printf("y=%f\n",y);
    if (((z<0)&&(z%2==0))||((z>0)&&(z%2!=0))) printf("z=%f\n",z);
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 21:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано три числа. Среди отрицательных найти четные, среди положительных - нечетные (C++):

Найти наибольший среди отрицательных и наименьший среди положительных элементов массива - C++
Задача такова: В введенном с клавиатуры одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных...

Матрица с fstream. Найти максимум среди отрицательных и минимум среди положительных элементов - C++
Составить программу нахождения максимального элемента среди отрицательных чисел и минимального элемента среди положительных для каждой...

В одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов - C++
пожалуйста пожалуйста листинг оставил на компьютере в колледже поэтому кинуть свои наработки не могу Условие:&quot;введенному с клавиатуры...

Найти макс. элемент среди отрицательных и мин. элемент среди положительных элементов массива - C++
В массиве (введенном пользователем) найти максимальный элемент среди отрицательных массива и найти минимальный элемент среди положительных...

Определить наименьшее среди положительных и наибольшее среди отрицательных введенных чисел - C++
Помогите написать программу: пользователь вводит числа заканчивая введение нулем. Определить наименьшее среди положительных и больше среди...

Определить минимум среди положительных и максимум среди отрицательных чисел - C++
Ну вот смотрите у меня есть код почти робочий.Он правильно показивает самое меньшее среди положительных но почему он покизвает самое...

32
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.01.2014, 22:22 #16
Цитата Сообщение от _script_ Посмотреть сообщение
cooller_94, а автора, проверка на четность и не четность правильная)
тут ошибка только в float.
А я говорил что не правильная проверка? Если по условию нужные действительные числа то нужно преобразовывать
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 22:22 #17
Цитата Сообщение от Iren1 Посмотреть сообщение
поменяла.. программа запускается и моментально же выключается(
а попробуй мой код, заменив там))
0
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
20.01.2014, 22:28  [ТС] #18
как преобразовывать? помоги)

Добавлено через 3 минуты
Цитата Сообщение от mustimur Посмотреть сообщение
а попробуй мой код, заменив там))
(int)x%2!=0 это?? или x/2-floor(x/2) не работает оно с дейст. числами(( и часто выбивает почемуто((
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 22:31 #19
Цитата Сообщение от Iren1 Посмотреть сообщение
(int)x%2!=0 это?? или x/2-floor(x/2) не работает оно с дейст. числами(( и часто выбивает почемуто((
#include <iostream>

C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
float x,y,z;
printf("vvedite tri chisla\n");
std::cin>>x>>y>>z;
if (((x<0)&&((x/2-floor(x/2))==0))||((x>0)&&((x/2-floor(x/2))!=0))) printf("x=%f\n",x);
if (((y<0)&&((y/2-floor(y/2))==0))||((y>0)&&((y/2-floor(y/2)!=0)))) printf("y=%f\n",y);
if (((z<0)&&((z/2-floor(z/2))==0))||((z>0)&&((z/2-floor(z/2)!=0)))) printf("z=%f\n",z);
std::cin>>x;
return 0;
}
Добавлено через 1 минуту
либо

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
float x,y,z;
printf("vvedite tri chisla\n");
std::cin>>x>>y>>z;
 
if (((x<0)&&((int)x%2==0))||((x>0)&&((int)x%2!=0))) printf("x=%f\n",x);
if (((y<0)&&((int)y%2==0))||((y>0)&&((int)y%2!=0))) printf("y=%f\n",y);
if (((z<0)&&((int)z%2==0)||((z>0)&&((int)z%2!=0)))) printf("z=%f\n",z);
std::cin>>x;
return 0;
}
0
Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 300
Завершенные тесты: 1
20.01.2014, 22:38 #20
я кажется придумала ещё вариант.
Какие там действительные числа? Т.е.. ограничение по знакам после точки есть? Можно будет их домножать на какое-то 10^х, чтобы сравнить (если приведение к типа int не совсем то для float)
А можно ещё сделать проверку на остаток, т.е., последнюю цифру остатка проверить на чётность -- 1,3,5,7,9 -- нечётное число и всё.
останется только получить последнюю цифру, как-то.
0
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
20.01.2014, 22:40  [ТС] #21
1 вообще не понятно как работает.. а 2 версия.. с десятичными числами плохо работает. я ввела 3.2 он пишет что оно нечетное..бр... тоесть, оно определяет по целой части? брррр

Добавлено через 33 секунды
Цитата Сообщение от Nullik Посмотреть сообщение
я кажется придумала ещё вариант.
Какие там действительные числа? Т.е.. ограничение по знакам после точки есть? Можно будет их домножать на какое-то 10^х, чтобы сравнить (если приведение к типа int не совсем то для float)
А можно ещё сделать проверку на остаток, т.е., последнюю цифру остатка проверить на чётность -- 1,3,5,7,9 -- нечётное число и всё.
останется только получить последнюю цифру, как-то.
и как узнать нам эту последнюю цифру?)
0
Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 300
Завершенные тесты: 1
20.01.2014, 22:42 #22
Iren1, сча, будем колдовать.
0
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
20.01.2014, 22:45  [ТС] #23
у меня уже мозг кипит..я над этой задачей 4 часа уже сижу..
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 22:47 #24
отбрасывает дробную часть floor(3.6)=3
смотри если x=5 то 5/2-floor(5/2)=2.5-floor(2.5)=2.5-2=0.5

Добавлено через 1 минуту
Цитата Сообщение от Iren1 Посмотреть сообщение
у меня уже мозг кипит..я над этой задачей 4 часа уже сижу..
а вот сейчас сижу и думаю 3.6 это парное или не парное? и почему??
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.01.2014, 22:49 #25
Цитата Сообщение от mustimur Посмотреть сообщение
а вот сейчас сижу и думаю 3.6 это парное или не парное? и почему??
любое число у которого есть "хвостик" автоматически становится непарным
1
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 22:52 #26
Цитата Сообщение от cooller_94 Посмотреть сообщение
любое число у которого есть "хвостик" автоматически становится непарным
Ты знаешь в переводе на русский нечетным, т.е. 3.6 нечетное .... Интересная трактовка, а я то думал что понимаю математику. )))

Добавлено через 27 секунд
Но тогда мое решение правильно
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
20.01.2014, 22:55 #27
mustimur, Принцип четности нечетности применим только для целых чисел.
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 22:58 #28
Цитата Сообщение от cooller_94 Посмотреть сообщение
mustimur, Принцип четности нечетности применим только для целых чисел.
Так я тебе о том же! Парное-четное, непарное-нечетное... А она говорила про 3.2....а это для меня как компьютера деление на 0.....Слегка завис)
0
Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 300
Завершенные тесты: 1
20.01.2014, 23:03 #29
Кажись решила

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
 
using namespace std;
 
int main()
{
    float a,b,c;
    int a1,b1,c1,a2,b2,c2;
    
    cout << "write 3 numb: ";
    cin >> a >> b >>c;
    float xa=a,yb = b, zc = c; 
 
    while(true)
    {
            a1=a;
        a2=a1+1;
 
        b1=b;
        b2=b1+1;
 
        c1=c;
        c2=c1+1;
 
        if(a>a1 && a<a2)
        {
            a*=10;
        }
        else
            if(b>b1 && b<b2)
            {
                b*=10;
            }
            else
                if(c>c1 && c<c2)
                {
                    c*=10;
                }
                else
                    break;
    }
    
    int x=a, y=b, z=c;
 
    if (((x<0)&&(x%2==0))||((x>0)&&(x%2!=0))) cout << "x=" << xa;
    if (((y<0)&&(y%2==0))||((y>0)&&(y%2!=0))) cout << "y=" << yb;
    if (((z<0)&&(z%2==0))||((z>0)&&(z%2!=0))) cout << "z=" << zc;
 
    cin.get();
    cin.get();
    return 0;
}
1
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 23:07 #30
Цитата Сообщение от Nullik Посмотреть сообщение
Кажись решила
Во истину мы не ищем легких путей))))
0
20.01.2014, 23:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 23:07
Привет! Вот еще темы с ответами:

Матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами - C++
Помогите решить задачу: Задана матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их...

Найти максимальный среди отрицательных элементов имеющих четные индексы. - C++
Даны натуральное число n, действительные числа a1, … , an. Найти максимальный среди отрицательных элементов имеющих четные индексы.

Найти минимальное число среди положительных чисел и максимальное число среди отрицательных чисел - C++
Никак не могу понять ,как написать эту программу.Помогите пожалуйста. Задан одномерный массив А (10) действительных чисел. Ввести массив...

Найти максимальный среди отрицательных элементов массива имеющих четные индексы - C++
Максимальный среди отрицательных элементов имеющих четные индексы. #include &lt;iostream&gt; using namespace std; int main() { ...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.