Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

Организация цикла С++ - C++

22.08.2012, 19:01. Просмотров 1306. Ответов 25
Метки нет (Все метки)

Добрый день. Нужно организовать ниже приведенный код таким образом чтобы программа никогда не выводила более 10 чисел в одной строке, и организовать это при помощи инструкции while или for, и без участия if (а также без логического оператора !, и арифметического оператора деление по модулю %). Как мне кажется, осуществить это можно при помощи вложений одного цикла в другой, но знаний для этого у меня не достаточно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Программа, которая запрашивает у пользователя два числа и
// выводит все числа, которые находятся между ними
#include <iostream>
 
int main()
{
 std::cout << "Введите, пожалуйста, 2 числа: ";
 int a, b;
 int max, min;
 std::cin >> a >> b;
 // проверка на то, какое число меньше, чтобы с него
 // начать отчёт
 if (a >= b) {
   max = a;
   min = b;  
 }
 else {
   max = b;
   min = a;
 }
 /*
 // организация при помощи цикла while
 while ( max > min ) {
   ++min;
   std::cout << min << " " << std::endl;
   } */
 // организация при помощи цикла for
 for (; max > min; ++min) {
   std::cout << min << " ";
   /* if (!(min%10)) std::cout << "\n"; // можно решить задачу
при помощи логического оператора !,
и арифметического оператора деление по модулю %. Но данный метод
не подходит по условию. */
 }
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2012, 19:01     Организация цикла С++
Посмотрите здесь:

Организация исходников - C++
Не нашел в гугле толковый инфы. Вот есть у меня допустим два класса, нейрон и перцептрон. Описал я их в .h. Реализовал в .cpp одном. Но...

Организация памяти. - C++
Здравствуйте. Объясните, пожалуйста, вот что: Допустим есть класс, с определенным количеством полей и определенным набором методов. При...

Организация программы - C++
Здравствуйте уважаемые программисты! Есть такая задача: Используйте одномерный массив для решения задачи. Компания платит своим...

Организация БД по дате - C++
Тема далеко не новая и некоторые наводки на решения я находил уже на форуме, но лишь наводки. Суть такая: При вводе данных в БД в...

Организация циклов в С - C++
Составить программу в С: 1. Составить программу, проверяющую, является ли заданное натуральное число совершенным, то есть равным сумме...

Организация Меню в С++ - C++
Привет!!!!!!!!!! Народ подскажите как создать меню в С++ в консольном приложении???

Организация библиотеки - C++
Написал набор классов и функций для своего удобства, чтобы подключать их в любом проекте. Всего получилось 35 файлов. Поместил я эти...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
wtf?
19 / 19 / 0
Регистрация: 03.10.2010
Сообщений: 48
22.08.2012, 19:11     Организация цикла С++ #2
C++
1
2
3
4
5
6
7
for (; max > min; ++min)
{
     for(int i = 0; i < 11; ++i)
     {
         /* выводим что хотим */
     }
}
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 19:40     Организация цикла С++ #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main() 
{
    int min,max,a,b;
    cout << "Введите, пожалуйста, 2 числа: ";cin>>a>>b;
    if (a >= b) 
    {
        max = a; min = b;  
    }
    else
    {
        max = b; min = a;
    }
    for(int i=min;i<max;)
    {
        for(int j=0;j<10;j++,i++)
            cout<<i<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
22.08.2012, 19:50     Организация цикла С++ #4
Можно и одним, в чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
int main()
{
   std::cout << "Введите, пожалуйста, 2 числа: ";
   int a, b;
   int max, min;
   std::cin >> a >> b;
   // проверка на то, какое число меньше, чтобы с него
   // начать отчёт
   if (a >= b) {
      max = a;
      min = b;
   }
   else {
      max = b;
      min = a;
   }
 
   for (int i = 0; max > (min + i) && i < 10; ++i) {
      std::cout << (min + i) << " ";
   }
   return 0;
}
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 19:56     Организация цикла С++ #5
Цитата Сообщение от Buckstabue Посмотреть сообщение
Можно и одним, в чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
int main()
{
   std::cout << "Введите, пожалуйста, 2 числа: ";
   int a, b;
   int max, min;
   std::cin >> a >> b;
   // проверка на то, какое число меньше, чтобы с него
   // начать отчёт
   if (a >= b) {
      max = a;
      min = b;
   }
   else {
      max = b;
      min = a;
   }
 
   for (int i = 0; max > (min + i) && i < 10; ++i) {
      std::cout << (min + i) << " ";
   }
   return 0;
}
Она у тебя ломается, вернее показывает первые десять чисел, а если я сделаю интервал от 1 до 50?.
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
22.08.2012, 20:20     Организация цикла С++ #6
Не внимательно прочитал. Так она должна выводить все числа, но при этом после каждых 10 чисел выводить перевод строки? Тогда делай, как сказали выше через вложенный цикл, хотя задание тогда странное вообще

Добавлено через 3 минуты
Можно впринципе все равно один, использую условную операцию вида (a%b) == blabla ? ' ' : '\n' это ж не оператор, а операция. Так что можно и одним циклом отделаться.
Упс. Тут еще операцию % нельзя использовать, тогда не знаю, хотя это можно опять же заменить самодельной функцией
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
22.08.2012, 20:50  [ТС]     Организация цикла С++ #7
Цитата Сообщение от wtf? Посмотреть сообщение
for (; max > min; ++min)
{
for(int i = 0; i < 11; ++i)
{
/* выводим что хотим */
}
}
я пробовал организовать цикл подобным методом, но ожидаемого результата не достиг: получалось либо выводить по 10 одинаковых значений, либо 10 пустых строк после которого идёт следующее число.

Добавлено через 3 минуты
Инструкцию if, а также операторы ==; !=; !; &&; || - использовать по условию нельзя

Добавлено через 13 минут
т.е. кода:
C++
1
2
3
4
5
6
7
8
9
10
// проверка на то, какое число меньше, чтобы с него
 // начать отчёт
 if (a >= b) {
   max = a;
   min = b;  
 }
 else {
   max = b;
   min = a;
 }
быть не должно.
ЗЫ. Только при помощи while или for
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 20:58     Организация цикла С++ #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() 
{
    int min,max,a,b;
    cout << "Введите, пожалуйста, 2 числа: ";cin>>a>>b;
    a>b?max=a,min=b:min=a,max=b;
    for(int i=min;i<max;)
    {
        for(int j=0;j<10;j++,i++)
            cout<<i<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}
Этот вариант жутко не правильный!!!
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
22.08.2012, 21:02  [ТС]     Организация цикла С++ #9
Андрей, благодарю за труд, но что означает эта строка?
a>b?max=a,min=b:min=a,max=b;
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 21:07     Организация цикла С++ #10
Использовал условную операцию. Да, и я даже не предсталяю как без условий написать проверку , чтобы выводило между интервал все числа , если их количество не кратно десяти.
Поэтому если интревал 1 - 25, то выведет до 30, это из-за того что ты задал такие критерии выполнения задания. Кто знает как сделать лучше, поправит меня.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main() 
{
    int min,max,a,b;
    cout << "Введите, пожалуйста, 2 числа: ";cin>>a>>b;
    a>b?max=a:min=a;//условная операция
    b>a?max=b:min=b;
    for(int i=min;i<max;)
    {
        for(int j=0;j<10;j++,i++)
            cout<<i<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.08.2012, 21:09     Организация цикла С++ #11
Я эту проблему решил бы вот-так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <conio.h>
 
#include <iostream>
 
using namespace std;
 
int main()
{
    int size = 100;
 
    int min = 0, max = size / 10;
    
    while (min < size)
    {
        for (int i = min; i <= max; i++)
            std::cout << i << " ";
 
        min = max + 1;
        max = max + 10;
 
        std::cout << endl;
    }
 
    _getch();
 
    return 0;
}
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 21:14     Организация цикла С++ #12
Цитата Сообщение от zitxbit Посмотреть сообщение
Вариант неплохой, но опять же как и у меня, если задать интервал( в твоем случае size=75) 1-75, то выведет в моем варианте 1-80(в твоем 1-77) ,что не правильно. Да и он вводит числа с клавиатуры, что тоже по-моему влияет.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.08.2012, 21:16     Организация цикла С++ #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <conio.h>
 
#include <iostream>
 
using namespace std;
 
int main()
{
    int size = 100;
 
    int min = 0, max = size / 10;
    
    while (min < size)
    {
        for (int i = min; i <= max; i++)
            std::cout << i << " ";
 
        min = max + 1;
        max = max + (size / 10);
 
        std::cout << endl;
    }
 
    _getch();
 
    return 0;
}
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
22.08.2012, 21:21     Организация цикла С++ #14
zitxbit, без обид , но при тесте size=75, в новом варианте всё равно не правильно.
Плюс данные с клавиатуры, где можно ввести сначала макс-число, а потом мин-число.
Я не уверен, но вроде нельзя не выйти за границы без условия if.
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
22.08.2012, 21:23  [ТС]     Организация цикла С++ #15
Инициализация переменных должна осуществляться при помощи чтения со стандартного устройства ввода и сохранения их в объекте типа int.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.08.2012, 21:34     Организация цикла С++ #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
int main()
{
    int j, i, min, max, a, b;
    std::cout << "Ââåäèòå, ïîæГ*ëóéñòГ*, 2 Г·ГЁГ±Г«Г*: ";
    std::cin >> a >> b;
    min = (a > b ? b : a);
    max = (a > b ? a : b);
    for(i = min; i <= max; )
    {
        for (j = 0; j < 10 && i <= max; ++i, ++j)
           std::cout << i << ' ';
        std::cout << std::endl;
    }
    std::system("pause");
    return 0;
}
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
22.08.2012, 21:36  [ТС]     Организация цикла С++ #17
Цитата Сообщение от Thinker Посмотреть сообщение
min = (a > b ? b : a);
* * max = (a > b ? a : b);
Такого быть не должно: только начало учебника а тот код явно где-то с середины
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.08.2012, 21:37     Организация цикла С++ #18
А в остальном пойдет? При a != b можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
int main()
{
    int j, i, a, b;
    std::cout << "Ââåäèòå, ïîæГ*ëóéñòГ*, 2 Г·ГЁГ±Г«Г*: ";
    std::cin >> a >> b;
 
    for(i = a; i <= b; )
    {
        for (j = 0; j < 10 && i <= b; ++i, ++j)
           std::cout << i << ' ';
        std::cout << std::endl;
    }
    for(i = b; i <= a; )
    {
        for (j = 0; j < 10 && i <= a; ++i, ++j)
           std::cout << i << ' ';
        std::cout << std::endl;
    }
    std::system("pause");
    return 0;
}
Если заранее известно, что a<=b, то можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int main()
{
    int j, i, a, b;
    std::cout << "Ââåäèòå, ïîæГ*ëóéñòГ*, 2 Г·ГЁГ±Г«Г*: ";
    std::cin >> a >> b;
 
    for(i = a; i <= b; )
    {
        for (j = 0; j < 10 && i <= b; ++i, ++j)
           std::cout << i << ' ';
        std::cout << std::endl;
    }
    std::system("pause");
    return 0;
}
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.08.2012, 21:39     Организация цикла С++ #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <conio.h>
 
#include <iostream>
 
using namespace std;
 
int main()
{
    int a = 0, b = 0;
    printf("a = "); scanf("%d",&a);
    printf("b = "); scanf("%d",&b);
 
    int min = a, max = 10;
    while (min < b)
    {
        for (int i = min; i <= max && i <= b; i++)
            std::cout << i << " ";
 
        min = max + 1;
        max = max + 10;
 
        std::cout << endl;
    }
 
    _getch();
 
    return 0;
}
Миниатюры
Организация цикла С++  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2012, 21:52     Организация цикла С++
Еще ссылки по теме:

Организация программы. - C++
Здравствуйте. Как организовать программу? Дана матрица с ней производится ряд операций. После этих операций матрица проверяется на...

Организация наследования - C++
Здраствуйте! У меня есть несколько классов: class Base { public: int baseGet() { return i; } void...

Организация счетчика - C++
Доброго вечера, форумчане) вопрос начинающего программиста, как организовать счетчик при помощи побитовых операций? Т.е., как я понимаю...

Организация меню - C++
Само задание сделал, но не могу понять, как делать менюшку _________________________________________ Описать структуру с именем ORDER,...

Организация циклов в C++ - C++
Не могу никак справиться с этим заданием: Дано натуральное число N: опредилить наименьшую цифру с чётным номером Оч нужна помощь....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
22.08.2012, 21:52  [ТС]     Организация цикла С++ #20
Цитата Сообщение от Thinker Посмотреть сообщение
1

#include <iostream>
int main()
{
* * int j, i, a, b;
* * std::cout << "Введите, пожалуйста, 2 числа: ";
* * std::cin >> a >> b;
for(i = a; i <= b; )
* * {
* * * * for (j = 0; j < 10 && i <= b; ++i, ++j)
* * * * * *std::cout << i << ' ';
* * * * std::cout << std::endl;
* * }
* * std::system("pause");
* * return 0;
}
прошу прощения за то, что сразу не изложил всё условие полностью:
Организация цикла С++

Добавлено через 2 минуты
Цитата Сообщение от zitxbit Посмотреть сообщение
printf("a = "); scanf("%d",&a);
* * printf("b = "); scanf("%d",&b);
по условию, это быть не должно
Yandex
Объявления
22.08.2012, 21:52     Организация цикла С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru