Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 3
1

Найти наименьшее и наибольшее число из ряда введённых

12.12.2009, 17:56. Показов 3621. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Не могу никак понять одну вещь. Есть задание, написать программу которая находит наименьшее и наибольшее число из ряда введённых, при этом использовать только оператор IF!!!.
Я написал программу, но она не работает правильно. Вот сама прога:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
  int a,b,c,min;
  
  printf ("Enter 3 integers: "); scanf ("%d", &a, &b, &c);
 
  
  if (a < b && a < c)
    min = a; 
  if (c < b && c < a)
    min = c; 
  if (b < a && b < c)
    min = b;
  
  printf ("Smallest is %d", min);
  
  return 0;
  
}
При запуске и вводе 3 чисел..например 22 33 44 программа может выдать 24!! Просветите.
ПС: Только учусь ( По примеру видно ) Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2009, 17:56
Ответы с готовыми решениями:

Найти наибольшее и наименьшее значения функции
привет всем!! почти год назад на этом сайте выскакивала эта задача, но она была грамоская и так не...

Найти наибольшее и наименьшее значения функции
Доброго времени суток. Дана такая задача. Найти наибольшее и наименьшее значения функции y...

Найти наибольшее и наименьшее значения функции
Задача:Найти наибольшее и наименьшее значения функции y= (sin(x + 0.25))/x + 5 при изменении X от...

Найти наименьшее и наибольшее и переставить их - больше записывает на место наименьшего и наоборот
Одномерный массив заполнить произвольными числами. Найти наименьшее и наибольшее и переставить их -...

6
3 / 3 / 1
Регистрация: 04.12.2009
Сообщений: 10
12.12.2009, 18:22 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

cc0der, привет!
Твоя ошибка вот тут:
C
1
scanf("%d", &a, &b, &c);
должно быть вот так:
C
1
scanf("%d%d%d", &a, &b, &c);
не указываешь тип всех вводимых значений,а только одного.

Кстати, вот так меньше условий и код понятнее.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
int main()
{
    int a,b,c,min;
    printf ("Enter 3 integers: "); 
    scanf("%d%d%d", &a, &b, &c);
    if (a < b )
        min = a;
    else
        min=b; //b>a
    if(c<a ||c<b)
        min=c;
printf ("Smallest is %d", min);
return 0;
}
1
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
12.12.2009, 18:24 3
ошибка в 5 строке, не хватает тегов:
Код
scanf ("%d[COLOR="Red"]%d%d[/COLOR]", &a, &b, &c);
Добавлено через 54 секунды
Опоздал... )))
0
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 3
12.12.2009, 18:28  [ТС] 4
Кстати, вот так меньше условий и код понятнее.
Спасибо большое. А можно как-нибудь написать без else ?
0
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
12.12.2009, 18:38 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Vini, не корректно записал условия:
Код
if (a < b )
        min = a;
    else
        min=b; //b>a
    if(c<a ||c<b)
        min=c;
Так как при значениях а=1 b=4 c=3, у тебя минимальным получается с

Правильней будет так:
Код
if (a < b )  min = a;
else  min=b; //b>a
if(c<min) min=c;
2
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 3
12.12.2009, 18:47  [ТС] 6
спасибо вам.
0
3 / 3 / 1
Регистрация: 04.12.2009
Сообщений: 10
12.12.2009, 18:54 7
manfeese. да точно. ты прав
cc0der без else конечно можно, но смысл? else это часть оператора if. Поэтому заданию это не противоречит.
0
12.12.2009, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2009, 18:54
Помогаю со студенческими работами здесь

Найти сумму, среднее значение, произведение, наименьшее и наибольшее из заданных чисел
Напишите программу которая принимает три целых числа с клавиатуры, печатает сумму, среднее...

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

Найти и вывести наибольшее и наименьшее значение массива, а также разницу между ними
Люди помогите написать программу!!!! использовать одномерный массы чисел, заполнить произвольными...

Найти наибольшее отрицательное число и наименьшее положительное число среди 6 чисел
Даны шесть целых чисел. Найдите наибольшее отрицательное число и наименьшее положительное число...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru