1.for, Циклы 2. While

Тема в разделе "C/C++/C#", создана пользователем Maddy101d, 11 ноя 2014.

  1. Maddy101d

    Maddy101d New Member

    Регистрация:
    11 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Господа, учусь на первом курсе, Прикладная Информатика. В школе толком программирования не было, вот и появились трудности с решением работ.
    С++
    1.FOR, ЦИКЛЫ
    Исходные данные: К натуральных чисел, не превышающих 999999. Для каждого числа определить: верно ли, что все его цифры разные. Массивы не использовать. (опечаток нету)


    2.WHILE
    a ) С клавиатуры вводятся числа от -100 до +100 до тех пор, пока пользователю не надоест. Сколько в последовательности чисел, которые меньше своего соседа справа? Обеспечить проверку вводимых данных.
    b ) Данная последовательность 1 + 1/2 + 1/3 + 1/4 + .... Суммировать элементы последовательности до тех пор, пока сумма остается меньше введенного с клавиатуры числа Х(меньше 5 и больше 2). Сколько потребовалось слагаемых? Обеспечить проверку вводимых данных.
    Числа для проверки: х=3(отв. 11); x=4(отв. 31). (опечаток нету)

    Это, собственно, все.

    Заранее спасибо :)

    П.с. Пытался сделать сам на парах и дома. Не выходит... по этому обратился к вам. Уж простите )
     
  2. Astyxys

    Astyxys New Member

    Регистрация:
    13 июл 2010
    Сообщения:
    4
    Симпатии:
    0
    Первая задачка:
    Код (C++):
    #include <stdio.h>

    unsigned short test = 0;

    bool check(int a)
    {
    int b = (a ? a:10);
    if(test & 1<<b) return true;
    test = 1<<b;
    return false;
    }

    int main()
    {

    int num;
    int ost;

    printf("Enter the number:");
    scanf("%d",&num);

    for(int i=0; i<6 || num;i++)
    {
    ost = num%10;
    if(check(ost))
    {
    printf("\nEqual numbers present!\n");
    return 0;
    }
    num/=10;
    }
    printf("\nAll numbers are different\n");
    return 0;
    }
    Вторую - лень интерфейс с проверкой ошибок писать))
     
  3. Maddy101d

    Maddy101d New Member

    Регистрация:
    11 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Большое спасибо <_<
    Правда выдает пару ошибок, ну да сами разберемся с ними)

    Кому то лень писать 2ю задачу, а кто то до сих пор не знает как ее делать :)
     
  4. Astyxys

    Astyxys New Member

    Регистрация:
    13 июл 2010
    Сообщения:
    4
    Симпатии:
    0
    Код (C++):
    bool check(int a)
    {
    int b = (a ? a:10);
    if(test & 1<<b) return true;
    test |= 1<<b;
    return false;
    }
    Добавлено: a ) С клавиатуры вводятся числа от -100 до +100 до тех пор, пока пользователю не надоест. Сколько в последовательности чисел, которые меньше своего соседа справа? Обеспечить проверку вводимых данных.

    Заводишь bool переменную, для выяснения устал ли юзер вводить данные. Либо делаешь отдельную функцию, которая рисует вопрос о продолжении ввода чисел, проверяет что выбрал юзер и выдает true/false хочет или нет. Соответственно вызываешь ее в цикле. Далее просишь дать число. Проверяешь число на диапазон. Проверяешь число на соседа. Если true - увеличиваешь счетчик на 1. Все.
     
Загрузка...
Похожие Темы - for Циклы While
  1. gx6060
    Ответов:
    2
    Просмотров:
    423
  2. garrick
    Ответов:
    3
    Просмотров:
    440
  3. SvetlanaL
    Ответов:
    0
    Просмотров:
    198
  4. SvetlanaL
    Ответов:
    0
    Просмотров:
    170
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    217

Поделиться этой страницей