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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 21:15   #1
iwataman
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию Дано натуральное число. Верно ли, что его цифры следуют в порядке возрастания справа налево?

Дано натуральное число. Верно ли, что его цифры следуют в порядке возрастания справа налево? Помогите пожалуйста. Буду очень признателен. Все примеры что нашел написаны на Си++, так что толком не могу понять как они работают. Ответ по идее должен быть да, нет, всревно. Нужен код программы на Си. Заранее спасибо.
iwataman вне форума Ответить с цитированием
Старый 03.12.2012, 21:41   #2
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

А что там неясного? Ввод/вывод? В студию код С++
"cout <<" это printf
"cin" - scanf
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 03.12.2012, 21:46   #3
iwataman
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию

int Number, Numeric, LastNumeric = -1;
string Flag("True");
cout << "Enter the number " << endl;
cin >> Number;

while(Number)
{
Numeric = Number % 10;
Number /= 10;

if (Numeric < LastNumeric)
{
Flag = "False";
break;
}
LastNumeric = Numeric;
}
cout << Flag << endl;


С Flag не понятно. И логика работы тоже.. Был бы очень благодарен, если бы кто то обьяснил как работает.
iwataman вне форума Ответить с цитированием
Старый 03.12.2012, 21:54   #4
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Flag - это ответ (назвать надо было по-другому). Изначально инициализируется
"True" (то есть истина, назвать надо было разумнее, "цифры возрастают справа налево"), если в цикле очередная цифра (остаток от деления на 10) нарушает заявленный порядок - ответ меняется на противоположный
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 03.12.2012, 22:04   #5
iwataman
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию

А можете обяснить логику работы программы ? Получается что flag можно оттуда и вовсе убрать, добавить esle и заменить flag на printf(да/нет) в зависимости от случая ?
iwataman вне форума Ответить с цитированием
Старый 03.12.2012, 22:39   #6
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Можно убрать, если соединить условие с циклом
Код:
int Number, Numeric, LastNumeric = -1;
cout << "Enter the number " << endl;
cin >> Number;

while( Number && (Number % 10 > LastNumeric) ) {
  LastNumeric = Number % 10;
  Number /= 10;
  }
if (Numeric)
 cout << '' << endl
else cout << '' << endl
Да и код надо выделять кнопочкой "#"
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 03.12.2012 в 22:44.
MihalNik вне форума Ответить с цитированием
Старый 04.12.2012, 15:44   #7
iwataman
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию

Код:
#include<conio.h>
#include<stdio.h>

int main ()

{
int module;
int module_old = 0;
long number;
printf("Please enter a natural number...\n");
scanf("%i", &number);

while (number > 0) {
module = number % 10;
number = number / 10;
if (module < module_old) {
printf("FALSE\n");
return 0;
}
module_old = module;
}
printf("TRUE\n");

getch();
return 0;
}
Эх написал вот такую штука, не без сторонней помощи, но она не работает. В чем может быть причина ?
iwataman вне форума Ответить с цитированием
Старый 04.12.2012, 15:58   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Применительно к какому числу не работает?
Abstraction вне форума Ответить с цитированием
Старый 04.12.2012, 16:06   #9
iwataman
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию

Программа сама запускается. Как тэстовые беру 23 и 32. 23 не работает, 32 - показывает все как и надо.)
iwataman вне форума Ответить с цитированием
Старый 04.12.2012, 16:19   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

32 - выводит TRUE.
23 - тоже выводит TRUE?

Что чуть интереснее, как это - "сама запускается"? Программа-самосчиталка?
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано натуральное число п. Написать программу для определения первой цифры числа п. AlenaVasilenko Паскаль, Turbo Pascal, PascalABC.NET 5 17.06.2011 18:23
Дано натуральное число n ( n<=100).Чему равна сумма его цифр? Petrovich83 Помощь студентам 1 11.04.2011 21:12
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46
Дано натуральное число. Верно ли, что в этом числе нет цифры А. А задается с клавиатуры. Женечка92 Помощь студентам 9 03.04.2010 16:06
Дано натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных чисел? Сеня Помощь студентам 3 29.01.2009 01:17