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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 10:00   #1
logas83
Пользователь
 
Регистрация: 07.09.2013
Сообщений: 19
По умолчанию Помогите пожалуйста с программой на Си

Условие задачи:
Ввести два числа и напечатать, какое из них делится на другое. Без операторов ветвления (IF).

В чем проблема:
В программе, как я понял, всегда срабатывает второе условие. Допустим вводим число 3 и число 5 - напишет что 5 делится на 3, вводим 5 и 3 - пишется что 3 делится на 5. Почему пропускается основное условие?

Код:

Код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;
	
system("chcp 1251 > null");

printf("Enter 2 int values: ");
scanf("%d %d", &a,&b);
printf("Число %d делится на число %d\n",
a%b >= 1 ? a,b
:b,a
);

return 0;
	
}

Последний раз редактировалось logas83; 13.10.2013 в 11:00.
logas83 вне форума Ответить с цитированием
Старый 13.10.2013, 10:15   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Если число делится на другое, то остаток будет равен нулю.Условие не верное.
a%b == 0 ? a,b : b,a
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.10.2013, 10:58   #3
logas83
Пользователь
 
Регистрация: 07.09.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Если число делится на другое, то остаток будет равен нулю.Условие не верное.
a%b == 0 ? a,b : b,a

Поменял условие, но результат не изменился.
logas83 вне форума Ответить с цитированием
Старый 13.10.2013, 11:24   #4
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;

system("chcp 1251 > null");

printf("Enter 2 int values: ");
scanf("%d %d", &a,&b);

if(a%b == 0)
printf("Число %d делится на %d \n", a, b);
else
if(b%a == 0)
printf("Число %d делится на %d \n", b, a);
else
printf("Ни одно из чисел не делится на другое\n");



return 0;

}
roperd вне форума Ответить с цитированием
Старый 13.10.2013, 11:32   #5
logas83
Пользователь
 
Регистрация: 07.09.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от roperd Посмотреть сообщение
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;

system("chcp 1251 > null");

printf("Enter 2 int values: ");
scanf("%d %d", &a,&b);

if(a%b == 0)
printf("Число %d делится на %d \n", a, b);
else
if(b%a == 0)
printf("Число %d делится на %d \n", b, a);
else
printf("Ни одно из чисел не делится на другое\n");



return 0;

}

тут ветвление используется. в условии сказано, что нужно без него.
logas83 вне форума Ответить с цитированием
Старый 13.10.2013, 12:53   #6
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
Вопрос

Цитата:
Сообщение от logas83 Посмотреть сообщение
тут ветвление используется. в условии сказано, что нужно без него.
Извини, не обратил внимания...

Вот код:
Код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;

system("chcp 1251 > null");

printf("Enter 2 int values: ");
scanf("%d %d", &a,&b);

printf((a%b)?((b%a)?("Числа не делятся! \n"):("Число %d делится на %d \n")):(Число %d делится на %d \n"), (a%b)?(b):(a), (a%b)?(a):(b));

return 0;

}
roperd вне форума Ответить с цитированием
Старый 13.10.2013, 13:10   #7
logas83
Пользователь
 
Регистрация: 07.09.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от roperd Посмотреть сообщение
Извини, не обратил внимания...

Вот код:
Код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;

system("chcp 1251 > null");

printf("Enter 2 int values: ");
scanf("%d %d", &a,&b);

printf((a%b)?((b%a)?("Числа не делятся! \n"):("Число %d делится на %d \n")):(Число %d делится на %d \n"), (a%b)?(b):(a), (a%b)?(a):(b));

return 0;

}

Не хило завернул однако Сам то проверял на работоспособность? У меня ошибки показывает.
logas83 вне форума Ответить с цитированием
Старый 13.10.2013, 13:25   #8
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от logas83 Посмотреть сообщение
Не хило завернул однако Сам то проверял на работоспособность? У меня ошибки показывает.
Проверял, среда DevC++ 5 .3.0.4 все работает, на что жалуется?
roperd вне форума Ответить с цитированием
Старый 13.10.2013, 13:43   #9
logas83
Пользователь
 
Регистрация: 07.09.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от roperd Посмотреть сообщение
Проверял, среда DevC++ 5 .3.0.4 все работает, на что жалуется?

Вот скрин.
Изображения
Тип файла: jpg error.jpg (108.3 Кб, 127 просмотров)
logas83 вне форума Ответить с цитированием
Старый 13.10.2013, 14:11   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Попробуйте вот так:
Код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{

int a,b;
char *r;
system("chcp 1251 > null");
printf("Enter 2 int values: ");
scanf("%d %d", &a, &b);
a%b == 0? r = "Делится" : r = "Не делится";
printf(r);

system("PAUSE");
return 0;
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ С ПРОГРАММОЙ ПОЖАЛУЙСТА blackslayer Общие вопросы C/C++ 3 28.09.2009 22:07
Помогите ,пожалуйста с программой!! Artem04 Паскаль, Turbo Pascal, PascalABC.NET 0 04.06.2009 16:05
Помогите пожалуйста с программой! SfSpawN Помощь студентам 8 25.05.2009 17:39
Помогите с программой пожалуйста Loginanton Паскаль, Turbo Pascal, PascalABC.NET 0 22.01.2009 20:33