• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

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

  • Автор темы Maddy101d
  • Дата начала
M

Maddy101d

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


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

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

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

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

Astyxys

Первая задачка:
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;
}
Вторую - лень интерфейс с проверкой ошибок писать))
 
M

Maddy101d

Большое спасибо <_<
Правда выдает пару ошибок, ну да сами разберемся с ними)

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

Astyxys

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. Все.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!