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

Задача "Кто старше?" (подскажите где ошибка в коде) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 20:41     Задача "Кто старше?" (подскажите где ошибка в коде) #1
Здравствуйте!подскажите где может быть ошибка, на сайте показывает частичное решение,
Условие:
Программа принимает три числа: возраст Антона, возраст Бориса и возраст Виктора. Определите, кто из них старше остальных.
Входные данные
Входная строка содержит три натуральных числа: возраст Антона, возраст Бориса и возраст Виктора.
Выходные данные
Выходная строка должна содержать латинскую букву – код того человека, который старше всех. Код Антона – 'A', код Бориса – 'B', код Виктора – 'C'. Если двое старше третьего, нужно вывести два кода через пробел (в алфавитном порядке). Например, если Антон и Виктор старше Бориса, программа должна вывести 'A C'. Если все трое одного возраста, программа должна вывести число 0.
Код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main ()
{
    int a ,b,c;
    cin>>a>>b>>c;
        if (a>b && b>c)
        cout<<"A"<<endl;
    if (a<b && b>c)
        cout<<"B"<<endl;
    if (a<b && b<c)
        cout<<"C"<<endl;
    if (a==b && b==c)
        cout<<"0"<<endl;
    if (a==b && b>c)
        cout<<"A,B"<<endl;
    if (a==c && b<c)
        cout<<"A,C"<<endl;
    if (b==c && a<c)
        cout<<"B,C"<<endl;
 
        return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2014, 20:41     Задача "Кто старше?" (подскажите где ошибка в коде)
Посмотрите здесь:

кто нибудь делал прогу на С++ "Эмулятор клавиш с промежутком времени между "нажатиями""?! C++
Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
Где в коде ошибка(-и)? Компилируется, но выкидывает "name.exe has stopped working" C++
Ошибка в коде: "использована неинициализированная локальная переменная" C++
C++ Ошибка в коде "вызвано срабатывание точки останова"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4325 / 3746 / 1261
Регистрация: 14.04.2014
Сообщений: 14,704
20.06.2014, 20:53     Задача "Кто старше?" (подскажите где ошибка в коде) #2
Так работает или нет? Почему без else?
Pjeroo
Землянин
 Аватар для Pjeroo
33 / 33 / 12
Регистрация: 15.01.2013
Сообщений: 313
20.06.2014, 21:01     Задача "Кто старше?" (подскажите где ошибка в коде) #3
ZarinZomanu4,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int a,b,c;
    cin >> a >> b >> c;
 
    if (a > b && a > c)
        cout << 'A';
    else if (b > c && b > a)
        cout << 'B';
    else if (c > b && c > a)
        cout << 'C';
    else if (a == b && a == c)
        cout << '0';
    else if (a == b && b > c)
        cout << "A,B";
    else if (a == c && c > b)
        cout << "A,C";
    else if (b == c && c > a)
        cout << "B,C";
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 21:04  [ТС]     Задача "Кто старше?" (подскажите где ошибка в коде) #4
как бы работает, но проверочный сайт пишет что решение частичное.

Добавлено через 2 минуты
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int a,b,c;
 cin >> a >> b >> c;
if (a > b && a > c)
 cout << 'A';
 else if (b > c && b > a)
 cout << 'B';
 else if (c > b && c > a)
 cout << 'C';
 else if (a == b && a == c)
 cout << '0';
 else if (a == b && b > c)
 cout << "A,B";
 else if (a == c && c > b)
 cout << "A,C";
 else if (b == c && c > a)
 cout << "B,C";[/quote]
не подходит.все равно частичное решение.
Sheoka
0 / 0 / 1
Регистрация: 09.04.2014
Сообщений: 5
20.06.2014, 21:07     Задача "Кто старше?" (подскажите где ошибка в коде) #5
Нет ни одной проверки, являются ли числа целыми, неотрицательными. И если ввести что-то не так, то всё летит
Pjeroo
Землянин
 Аватар для Pjeroo
33 / 33 / 12
Регистрация: 15.01.2013
Сообщений: 313
20.06.2014, 21:10     Задача "Кто старше?" (подскажите где ошибка в коде) #6
Sheoka, и с чего вдруг оно куда-то полетит?
ValeryS
Модератор
6378 / 4844 / 442
Регистрация: 14.02.2011
Сообщений: 16,066
20.06.2014, 21:13     Задача "Кто старше?" (подскажите где ошибка в коде) #7
ZarinZomanu4, зачем столько проверок, бей условие на две части
примерно так
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
if(a>b)
{
  
  if(a==c)
     cout<<"A C"<<endl;
  else
    {
     if(a>c)
     cout<<"A"<<endl;
     else
     cout<<"C"<<endl;
    }
   }
else
{
 if(a<b)
 {
   if(b>=c)
     cout<<"B";
   else
      cout<<"C"<<endl;
    if(b==c)
     cout<<" C"<<endl;
  else
     cout<<endl;
 } 
 else
 {
   if(a==c)
     cout<<"0"<<endl;
  else
     cout<<"B C"<<endl;
 }
}
Sheoka
0 / 0 / 1
Регистрация: 09.04.2014
Сообщений: 5
20.06.2014, 21:13     Задача "Кто старше?" (подскажите где ошибка в коде) #8
А вы попробуйте ввести что-нибудь не являющееся натуральным числом
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 21:14  [ТС]     Задача "Кто старше?" (подскажите где ошибка в коде) #9
Цитата Сообщение от Sheoka Посмотреть сообщение
Нет ни одной проверки, являются ли числа целыми, неотрицательными. И если ввести что-то не так, то всё летит
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (a>0 && b>0 && c>0)
        { if (a > b && a > c)
        cout << 'A';
    else if (b > c && b > a)
        cout << 'B';
    else if (c > b && c > a)
        cout << 'C';
    else if (a == b && a == c)
        cout << '0';
    else if (a == b && b > c)
        cout << "A,B";
    else if (a == c && c > b)
        cout << "A,C";
    else if (b == c && c > a)
        cout << "B,C";
}
    else 
        cout<<"error"<<endl;
Все равно не то.или я не правильно понял мысль?
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
20.06.2014, 21:18     Задача "Кто старше?" (подскажите где ошибка в коде) #10
тут не нужны никакие проверки, читайте формат входных данных: 3 натуральных числа...
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 21:19  [ТС]     Задача "Кто старше?" (подскажите где ошибка в коде) #11
Цитата Сообщение от ValeryS Посмотреть сообщение
зачем столько проверок, бей условие на две части
примерно так
Ну тоже самое.Частичное решение.
Sheoka
0 / 0 / 1
Регистрация: 09.04.2014
Сообщений: 5
20.06.2014, 21:21     Задача "Кто старше?" (подскажите где ошибка в коде) #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
"нужно вывести два кода через пробел (в алфавитном порядке)" - попробуйте убрать запятые между выводимыми буквами
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 21:22  [ТС]     Задача "Кто старше?" (подскажите где ошибка в коде) #13
Цитата Сообщение от Sheoka Посмотреть сообщение
"нужно вывести два кода через пробел (в алфавитном порядке)" - попробуйте убрать запятые между выводимыми буквами
Добавлено через 1 минуту
нужно вывести два кода через пробел (в алфавитном порядке) - а в коде стоят запятые
Черт действительно.Помогло.Спасибо.
Pjeroo
Землянин
 Аватар для Pjeroo
33 / 33 / 12
Регистрация: 15.01.2013
Сообщений: 313
20.06.2014, 21:23     Задача "Кто старше?" (подскажите где ошибка в коде) #14
Sheoka, и все нормально отработает.
Sheoka
0 / 0 / 1
Регистрация: 09.04.2014
Сообщений: 5
20.06.2014, 21:26     Задача "Кто старше?" (подскажите где ошибка в коде) #15
Мой препод с вами бы не согласился
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
20.06.2014, 21:27     Задача "Кто старше?" (подскажите где ошибка в коде) #16
так попробуй послать

C++ (Qt)
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
#include <iostream>
#include <algorithm>
 
using namespace std;
 
pair<int, int> a[4];
 
int main()
{
    a[0].second = 'A';
    a[1].second = 'B';
    a[2].second = 'C';
 
    for(int i = 0; i < 3; i++)
        cin >> a[i].first;
 
    sort(a, a + 3);
 
    a[3].first = (int)(1e9);
 
    int idx = 2;
    while(idx > 0 && a[idx].first == a[idx - 1].first)
        idx--;
    if(idx == 0)
    {
        cout << 0 << endl;
        return 0;
    }
 
    for(int i = idx; i < 3; i++)
    {
        if(i != idx)
            cout << ',';
        cout << (char)(a[i].second);
    }
 
    cout << endl;
    return 0;
}
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 21:28  [ТС]     Задача "Кто старше?" (подскажите где ошибка в коде) #17
Да все уже разобрались.Вместо запятых поставил пробел и заработало.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2014, 21:28     Задача "Кто старше?" (подскажите где ошибка в коде)
Еще ссылки по теме:

Структура "Работники". Вывести данные о работниках старше 30-ти лет без высшего образования C++
Патерн "прототип" не работает, выдаёт ошибку "недопустимый вызов нестатической ф-ции", где я в коде ошибка? C++
C++ Ошибка в коде: "использована неиницилизирована локальная переменная"

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

Или воспользуйтесь поиском по форуму:
Sheoka
0 / 0 / 1
Регистрация: 09.04.2014
Сообщений: 5
20.06.2014, 21:28     Задача "Кто старше?" (подскажите где ошибка в коде) #18
Это может возыметь очень печальные последствия
Yandex
Объявления
20.06.2014, 21:28     Задача "Кто старше?" (подскажите где ошибка в коде)
Ответ Создать тему
Опции темы

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