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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2020, 23:09   #1
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию Программа в С должна строить 6 пар чисел и считать в скольких парах разница между числами меньше 10.

Здравствуйте! Программа которую написал не работает как нужно.Программа должна строить 6 пар чисел и считать в скольких парах разница между числами меньше 10. Думаю проблема с вводом по разному пробовал вводить числа и строчно и в столбик.
Код:
#include <stdio.h>
int main(void) {
int a,b,c=0,i;
printf("Enter 2 numbers");
for(i=0;i<=6;i++)
{
scanf("%d,%d",&a,&b);
if(a>b&&a-b>10||b>a&&b-a<10)
c=c+1;
}
printf("%d",c);
return 0;
}

Последний раз редактировалось BDA; 02.04.2020 в 23:21.
Alexalex777 вне форума Ответить с цитированием
Старый 02.04.2020, 23:23   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

1) Используйте кнопку CODE для оформления кода.
2) Код лучше писать с отступами, чтобы было нагляднее.
3) Вы считываете 7 пар, а не 6.
4) Вводить нужно числа через запятую и после ввода каждой пары нажимать Enter.
5) В условии увеличения "c" ошибка. Может быть лучше использовать функцию взятия модуля числа?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.04.2020, 23:37   #3
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Спасибо ! понял только зарегистрировался
значит тогда
Код:
for(i=1;i<=6;i++)
чтоб было 6 пар
а какая ошибка в
Код:
c=c+1;
?
Код:
c=c++;
так правильно ?

пока хочу разобраться без функции модуля числа.

Последний раз редактировалось Alexalex777; 02.04.2020 в 23:39. Причина: дополнение
Alexalex777 вне форума Ответить с цитированием
Старый 03.04.2020, 02:15   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от Alexalex777 Посмотреть сообщение
только зарегистрировался
Про CODE на будущее.
Ошибка не в самом увеличении, а в if'е.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.04.2020, 09:27   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

В смысле
Код:
if(abs(a-b)>10)
вот.
digitalis вне форума Ответить с цитированием
Старый 03.04.2020, 14:05   #6
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

BDA что ошибка в IF тоже так думал а оказалась проблема в том что в For i++ а в с=с+1;
в итоге For пробегал давал ноль .Два варианта вышло и оба рабочие.
Код:
#include <stdio.h>
int main(void) {
int a,b,c=0,i;
printf("Enter 2 numbers");
for(i=0;i<=6;i++)
{
scanf("%d,%d",&a,&b);
if(a>b&&a-b>10||b>a&&b-a<10)
c=c++;
}
printf("%d",c);
return 0;
}
Код:
#include <stdio.h>
int main(void) {
int a,b,c=0,i;
printf("Enter 2 numbers");
for(i=0;i<=6;i+1)
{
scanf("%d,%d",&a,&b);
if(a>b&&a-b>10||b>a&&b-a<10)
c=c+1;
}
printf("%d",c);
return 0;
}
Alexalex777 вне форума Ответить с цитированием
Старый 03.04.2020, 14:07   #7
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

digitalis спасибо ! попробую и твой вариант интересно.
Alexalex777 вне форума Ответить с цитированием
Старый 03.04.2020, 14:43   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Ох, во-первых, "c=c++;" нельзя писать в Си (это неопределенное поведение, почитайте про точки следования).
Во-вторых, "a-b>10||b-a<10" - вы в одном случае проверяете, что разница больше 10, а в другом - что меньше.
В-третьих, "i+1" без присваивания просто не изменяет i.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.04.2020, 15:01   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Alexalex777 Посмотреть сообщение
Код:
if(a>b&&a-b>10||b>a&&b-a<10)
Во втором сравнении тоже должно быть "больше 10", как и сказано в условии
Black Fregat вне форума Ответить с цитированием
Старый 03.04.2020, 19:13   #10
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

BDA ок работает но не по правилам в будущем учту!
То я не написал что в условии разница в парах чисел не должна быть больше или меньше 10и
Alexalex777 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разница между числами businessman Паскаль, Turbo Pascal, PascalABC.NET 6 21.05.2015 12:55
Дана последовательность из 100 вещественных чисел. Определить , со скольких чётных чисел она начинается SnS Lazarus, Free Pascal, CodeTyphon 2 22.09.2013 18:48
Прога должна строить множества Idiot Помощь студентам 2 11.12.2010 22:45
программа должна считать по этой формуле CheyZe Помощь студентам 0 25.11.2010 19:10
Евклид - программа должна запрашивать у пользователя 2 числа и считать их НОД amfisat Помощь студентам 2 17.09.2010 09:53