Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Найти ошибку в программе

86K
14 декабря 2013 года
yupoli
4 / / 27.10.2013
программа должна выводить числа, десятичная запись в которых строго убывающая или строго возрастающая, у меня работает только для двухзначных чисел. напиши как сделать чтобы работала и для больших чисел
Код:
#include "stdafx.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int i,n,k=0,z,m,l;
cout << "vvedite n>10:"<<endl;
cin>>n;

 for (i=10;i<=n;i++)
 { 
     z=i;
      while(z>10)
    {
        m=z%10;
        z=z/10;
     if(z%10<m)
         k=1;
     else  if(z%10>m)
         k=1;
      else k=0;break;
 }
      if(k==1)
         
      {k=0;
      cout<<i<<' ';}

 }
    return 0;
}
27K
15 декабря 2013 года
mnanorn
78 / / 01.12.2013
Пойдет? Или уже не актуально? :)
Прикрепленные файлы:
943 Кб
Загрузок: 1.1K
5 Кб
Загрузок: 729
83K
14 декабря 2013 года
Mr.Sharps
7 / / 24.11.2013
В смысле десятичная запись, если ты про систему счисления то тогда какими у тебя должны быть входные данные ? Так ладно напиши пример того как должна работать программа по твоему
27K
14 декабря 2013 года
mnanorn
78 / / 01.12.2013
Цитата: Mr.Sharps
В смысле десятичная запись, если ты про систему счисления то тогда какими у тебя должны быть входные данные ? Так ладно напиши пример того как должна работать программа по твоему


Да все очень просто. Нужно удалить числа, вроде 11, 22, 33...111, 222. Так, автор?

86K
14 декабря 2013 года
yupoli
4 / / 27.10.2013
Цитата: mnanorn
Цитата: Mr.Sharps
В смысле десятичная запись, если ты про систему счисления то тогда какими у тебя должны быть входные данные ? Так ладно напиши пример того как должна работать программа по твоему


Да все очень просто. Нужно удалить числа, вроде 11, 22, 33...111, 222. Так, автор?



Да Да именно так, и ещё чтобы не выводил числа 151,174 и тд, ведь у них нет например строгого возрастания

27K
15 декабря 2013 года
mnanorn
78 / / 01.12.2013
Тогда Вам лучше бы переписать свой пост как-нибудь так:

Разработать программу, анализирующую числа. Программа должна выводить на экран все числа, в которых:
  • Порядок цифр строго возрастающий;
  • Порядок цифр строго убывающий.
Программа не должна выводить на печать числа, содержащие менее двух цифр и не удовлетворяющие условиям вывода на печать.

Примеры:
  • 12, 13, 14 ... 123, 124, 125... - вывести на печать;
  • 11, 22, 33 ... 100, 121, 132... - не выводить на печать.

К сожалению, пока большим помочь не могу. Я понимаю, что нужно сделать, но как это реализовать, пока не знаю.
27K
17 декабря 2013 года
mnanorn
78 / / 01.12.2013
Неожиданно. Ну вот для пары:

Код:
/* Фильтр направления роста цифр в записи числа
 *
 * Фильтр пропускает числа в которых:
 *     1. цифры от старших разрядов числа к младшим
 * непрерывно растут;
 *     2. цифры от старших разрядов числа к младшим
 * непрерывно убывают.
 * В этих случаях фильтр возвращает не ноль. Иначе
 * возвращается нулевое значение. Диапазон целых
 * чисел регулируется константой itype.
 */


#include <iostream>
#define  itype long long

using namespace std;

unsigned char directionFilter(itype iArg)
{
    unsigned char fTag = 0;
    unsigned char hDig, lDig;

    while(iArg / 10)
    {
        lDig =  iArg % 10;
        hDig = (iArg / 10) % 10;

        if(lDig == hDig) return  0;
        if(lDig > hDig)  fTag |= 1;
            else         fTag |= 2;

        iArg /= 10;
    }

    if(fTag == 3) return 0;
        else      return 1;
}

int main(int argc, char** argv)
{
    itype n;

    cout << "Input n > 10: ";
    cin  >> n;

    for(itype i = 10; i <= n; i++)
        if(directionFilter(i))
            cout << i << 't';

    return 0;
}
Более эффективного подхода не нашел. :)

P.S. В cout вторым аргументом идет символ табуляции, но backslash здесь, почему-то, не отображается...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог