Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
#1

Cout - вывод не более 10 чисел в одной строке

08.07.2012, 16:26. Просмотров 1538. Ответов 4
Метки нет (Все метки)

Всем здравствуйте! Занимаюсь по книге Липпмана и др " С++ Вводный курс". В одном из материалов есть задание:Напишите программу, которая запрашивает у пользователя 2 числа и выводит числа в диапазоне введеных.
Сам код программы:
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
#include "stdafx.h"
#include "windows.h"
#include "iostream"
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a,b;
    std::cin >>a >>b;
    int min, max;
    if (a<=b)
    {
        min=a;
        max=b;
    }
    else
    { 
        min=b;
        max=a;
    }
    while (min<max-1) {
        min++;
        std::cout.width(8);
        std::cout<<min;
    }
    
    Sleep (10000);
    return 0;
К этой задаче есть пожелание в виде вывода не более 10 чисел в одной строке. Для этого использовал "cout.width" методом тыка, и подогнал до 10 чисел в одной строке. Я сомневаюсь в правильности своих действий. Если другие варианты вывода (используя cout)?
Для отображения чисел в диапазоне, не включающих верхний и нижний предел использовал конструкцию "while (min<max-1)". Почему при использовании "Min<Max", верхний предел входит в диапазон вывода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2012, 16:26
Ответы с готовыми решениями:

Как сделать вывод 2 и более переменных через cout?
При компиляции данной программы: #include &lt;iostream&gt; using namespace std; ...

Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
Помогите,пожалуйста,переделать с VBA на Си ,или же составить программу без...

Подсчёт слов в строке и вывод тех, которые встречаются более n раз
Всем доброго времени суток. Прошу помощи в решении задачи. Собственно сама...

Проверить количество считанных чисел в одной строке
Добрый вечер. Мне нужно как-нибудь проверить количество успешно считанных...

Как осуществить такую программу где ввод и вывод будет на одной строке?
Допустим у меня есть такой код int main() { int a,b; scanf(&quot;%i&quot;,&amp;a);...

4
Catstail
Модератор
23575 / 11676 / 2043
Регистрация: 12.02.2012
Сообщений: 19,049
08.07.2012, 16:33 #2
Проще всего, по-моему, поступить так: написать свою функцию, которая передавала бы арг. в cout и после 10 вызовов вставляла бы endl.

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.h"
 
void printout(int n)
{
    static count=0;
    cout << n << " ";
    count++;
    if (count > 9) 
    {
        count=0;
        cout << endl;
    }
}
 
 
int main(int argc, char* argv[])
{
 
    for (int i=1; i < 35; i++) printout(i);
 
    return 0;
}
1
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
08.07.2012, 17:18  [ТС] #3
Спасибо! Но нужно сделать как можно проще, имея самые базовые понятия о языке программирования.
Долго бился я над данным типом, а колличество "cout" так и не догадался подсчитать. Использовал из Вашего кода следующее:
C++
1
2
3
4
5
6
count++;
    if (count > 9) 
    {
        count=0;
        cout << endl;
    }
Сначала мы его считаем, и как я понял если больше 9, то переходим на новую строку.

Прокоментируйте пожалуйста эту часть:
C++
1
2
3
4
5
6
7
int main(int argc, char* argv[])
{
 
    for (int i=1; i < 35; i++) printout(i);
 
    return 0;
}
0
Catstail
Модератор
23575 / 11676 / 2043
Регистрация: 12.02.2012
Сообщений: 19,049
08.07.2012, 18:04 #4
C++
1
2
3
4
5
6
7
int main(int argc, char* argv[])
{
 
    for (int i=1; i < 35; i++) printout(i); // печатаем 35 чисел, и убеждаемся, что в строке не более 10...
 
    return 0;
}
Самое важное, это то, что count должна быть описана как static (или - вне функций сразу после include). Если этого не сделать, мой код не будет работать.
1
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
08.07.2012, 18:14  [ТС] #5
Еще раз спасибо вопрос снят, итоговый код имеет следующий вид:
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
#include "stdafx.h"
#include "windows.h"
#include "iostream"
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a,b;
    std::cin >>a >>b;
    int min, max;
    if (a<=b)
    {
        min=a;
        max=b;
    }
    else
    { 
        min=b;
        max=a;
    }
    int k=0;
    while (min<max-1) {
        min++;
        //std::cout.width(8);
        std::cout<<min<<" ";
        k++;
        if (k>9) {
            k=0;
            std::cout<<std::endl;
        }
    }
    
    Sleep (10000);
    return 0;
}
0
08.07.2012, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2012, 18:14

Написать программу более простым языком (как заменить std::cout на printf? )
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;iomanip&gt; using namespace...

прога которая содержащий не более 10 строк, в каждой строке не более 80 символов и эти символы вводятся с клавиатуры
здравструйте, помогите написать прогу которая содержащий не более 10 строк, в...

Не могу разобраться с одной строкой кода (cout.precision)
Всего один маленький вопросик. Что делает вот эта строка cout.precision(3);...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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