Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите пожайлуста со сложными циклами

Ответить
Настройки темы
C/C++ - [решено] Помогите пожайлуста со сложными циклами

Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


С клавиатуры вводится двузначное число, среди всех четырехзначных чисел вывести те, которые начинаются или заканчиваются этим числом.
Как мне сделать цикл что бы он проверял и 1-ю цифру, а не только 2-ю? вот моя программа(Я взял пока что числа поменьше):

читать дальше »

setlocale(LC_ALL, "Russian");
int n, i, a;
cout<<"Введите однозначное число ";
cin>>n;
for(i=10; i<100; i++){
if (i%10==n){
cout<<"число: "<<i<<"\t";
}}
//for (a=10; a<100; a++){
//a=a/10;
//if (a%10==n){
// cout<<"число: "<<a<<"\t";
//}}
getch();
}

Отправлено: 13:42, 06-12-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


nekitosiks, так, давай чуть назад и с азов.
Для того, чтобы тебя понимали, не поленись оформить код тегом CODE, #
Как видно в окне набора сообщения


[code]
setlocale(LC_ALL, "Russian");
int n, i, a;
cout<<"Введите однозначное число ";
cin>>n;
for(i=10; i<100; i++){
if (i%10==n){
cout<<"число: "<<i<<"\t";
} // if
} // for
getch();
}
[/code]

Как это увидим мы

Код: Выделить весь код
setlocale(LC_ALL, "Russian");
int n, i, a;
cout<<"Введите однозначное число ";
cin>>n;
for(i=10; i<100; i++){
  if (i%10==n){
    cout<<"число: "<<i<<"\t";
  } // if
} // for
getch();
}
Правда красиво?
Так для читающий и помогающих будет понятней.

----
Теперь рассказывай, что ты придумал? Своими словами.
Вариант "Код хорошо документирован на языке С++" не подходит.
У меня такое ощущение, что ты занимаешься глупостью. Или может не глупостью, но не в ту сторону.
Это нормальный ход событий, каждый этим время от времени страдает.

Сейчас спокойненько сядь, напиши, зачем тебе нужны сравнения 1ой, 2ой, и других цифр.
Цитата:
Как мне сделать цикл что бы он проверял и 1-ю цифру, а не только 2-ю?
Зачем тебе это действие?

----
Порядок изложения мыслей:
Цель, задачи, как решаются, возникающие расхождения (ошибки), выводы.

Цель:
Полная постановка задачи.
Задачи:
Циклы, сравнения и т.п. Т.е. декомпозиция задачи на составляющие.
Решения:
Чётко "провязанное" решение каждой задачи
Расхождения:
Так же "провязанные" сложности в том или ином действии
Выводы:
a) Собственные рассуждения
б) Привыкай делать выводы. Работы без выводов уходят в урну, просто без раздумий (да, возможно жестоко, но это так).

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:22, 06-12-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сравнения 1-го и 2-го с вводимым числом мне нужно для нахождения подходящих чисел.
Если я введу число 7, то программа должна вывести: 17, 27,37,47,57,67,77,87,97,(эти числа получилось вывести) ну и 70,71,72,73,74,75,76,78,79(эти числа не получилось вывести)

Отправлено: 15:35, 06-12-2013 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата nekitosiks:
Сравнения 1-го и 2-го с вводимым числом мне нужно для нахождения подходящих чисел.
Если я введу число 7, то программа должна вывести: 17, 27,37,47,57,67,77,87,97,(эти числа получилось вывести) ну и 70,71,72,73,74,75,76,78,79(эти числа не получилось вывести) »
По условию задачи этого не требуется.
Если это необходимо "в процессе решения", то на данный момент этот шаг не обоснован. (читай "снимается с рассмотрения")
Цитата nekitosiks:
Сравнения 1-го и 2-го с вводимым числом мне нужно для нахождения подходящих чисел. »
Интересно, а если я скажу что "не нужно". Как быть? Кому верить?
Без обид. Учись объяснять предпосылки и прогнозировать последствия.
Старайся следовать предложенной схеме. Это в первую очередь тебе поможет привести мысли в порядок.
Т.е. это не я тут такой вредный и спрашиваю какую-то околесицу, я помочь пытаюсь!

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 16:16, 06-12-2013 | #4


Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z лаб_раб_с_1-11.7z
(632.2 Kb, 2 просмотров)

Для большей ясности скину сами задания вместе с "теорией", которые нам задали. 2 курс программист.
Я сам не в восторге как нас учат...
Задают нам по 4 задания, я остановился на сложных циклах 3 лабораторной 13 задание

Отправлено: 16:40, 06-12-2013 | #5


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Деление на 10 является правильной идеей - в том коде, который закомментирован. В массиве из четырех элементов можно сохранять получившиеся значения. И в этом массиве искать значения из массива из двух элементов, в котором сохранены цифры двухзначного числа.

-------
Ehhh.. what's up, doc?..


Отправлено: 16:41, 06-12-2013 | #6


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата nekitosiks:
С клавиатуры вводится двузначное число, среди всех четырехзначных чисел вывести те, которые начинаются или заканчиваются этим числом. »
Можно уточнить?

Допустим ввели число 27
Среди прочих 4-значных чисел есть: 1234, 3456, 2345, 2745, 4572, 2678, 7432
Что нужно вывести? Числа начинающиеся на 27 или начинающиеся и заканчивающиеся на 2?

В итоге будет создан динамический массив array с размером равным количеству чисел в введённом числе и в этом массиве будет сохранено число поразрядно - 4357
Код: Выделить весь код
array[0] = 4;
array[1] = 3;
array[2] = 5;
array[3] = 7;
Оперируя с этим массивом можете проверять первый и последний индексы.

Код: Выделить весь код
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

// Функция расчитывающая количество чисел во введённом числе...
int Rasriad(int enterNumber)
{
  int n = enterNumber, x = 0;
	while (n != 0) {
		n /= 10;
		x++;
	}
	return x;
}

int main()
{
   int enterNumber,
       lenght = 0,
       indexRas,
       decimal = 1,
       z;

   cout << "Enter Number: ";
   cin >> enterNumber;

   // Длина числа.
   lenght = Rasriad(enterNumber);

   int *array = new int [lenght]; // Создаём массив необходимой длины

   // С какого делителя будем начинать деление?
   for(int j = 1; j < lenght; j++)
      decimal *= 10;

   for(int i = 0; i < lenght; i++){
      array[i] = enterNumber / decimal % 10; // Отрывание разрядов с первого числа по последнее и сохранение в массив
      decimal /= 10;
    }

   cin >> z;

   return 0;
}
//---------------------------

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 06-12-2013 в 17:49.


Отправлено: 17:37, 06-12-2013 | #7


Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Drongo:
Допустим ввели число 27 »
Должны будут выведены числа такие как: 2700,2701,2702... и 1027,1127...2327... Варианты: 3270, 9279, неподходят
К сожалению я до масивов не добрался, и не знаю что это

Отправлено: 17:51, 06-12-2013 | #8


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


nekitosiks, Так если в условии прямо сказано, введено двухзначное число и нужно сравнить с четырёхзначным, что мешает сделать примитивно? Я там сравниваю с прямым числом 27 (переменная num), но это в качестве примера, вместо 27 можно поставить переменную с введённым.

Код: Выделить весь код
#include <iostream>
using namespace std;

int main()
{
   int const size = 10; // грубо говоря, размер массива
   int first, // 1-е совпадение в начале
       last, // 2-е совпадение в конце
       num = 27; // число с которым сравниваем

   int array[size] = {1234, 3456, 2345, 2745, 4572, 2700, 7432, 6657, 9327, 2727};

   for(int i = 0; i < size; i++){
      first = array[i] / 100; // на 100, потому что отрывать от четырёхзначных будет первые два числа
      last = array[i] % 100; // на 100, даёт остаток последние два числа, кроме целочисленного остатка в ноль
      if(first == num) // условно 27, сравниваем с введённым
         cout << "Array[" << i << "] = " << array[i] << " First = " << first << endl;
      if(last == num) // условно 27, сравниваем с введённым
         cout << "Array[" << i << "] = " << array[i] << " Last = " << last << endl;
     }

   cin >> last;
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:01, 06-12-2013 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Вчера до форума не добрался ...
У меня другая мысль появилась. А зачем нам вообще ~9000 (1000 - 9999) сравнений, причем с двумя делениями в каждом цикле!
Деление с т.з. процессора штука не простая. Если оптимизирующий компилятор догадается, то он объединит инструкции в одну, а если нет?
Ответов у нас около 200 (грубо).
Вида ХХСС и ССХХ
Где CC -- заданная двухзначная константа,
ХХ -- некая переменная часть числа.
Нас не просят найти/сформировать массив/выбрать из заданного/и т.п. нас просят "вывести".
И сделать соотв. два цикла 10-99 и подписать введенное числа либо спереди, либо с сзади.
----
nekitosiks, очень жаль, что предложенной схемой рассуждений вы так и не воспользовались.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 17:32, 07-12-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите пожайлуста со сложными циклами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите пожайлуста drumnboy Лечение систем от вредоносных программ 1 24-09-2013 20:16
[решено] Работа со строками и циклами eus_deus AutoIt 15 12-09-2013 08:23
HDD - Помогите пожайлуста vasya_shelemba1996@vk Накопители (SSD, HDD, USB Flash) 2 08-03-2013 16:18
C/C++ - [решено] c++ помогите разобраться с циклами Cherterok Программирование и базы данных 17 19-12-2010 21:11
C/C++ - Помогите с Циклами в dev cpp VFRc Программирование и базы данных 2 23-03-2009 23:13




 
Переход