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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
08.07.2012, 16:26     Cout - вывод не более 10 чисел в одной строке #1
Всем здравствуйте! Занимаюсь по книге Липпмана и др " С++ Вводный курс". В одном из материалов есть задание:Напишите программу, которая запрашивает у пользователя 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", верхний предел входит в диапазон вывода?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2012, 16:26     Cout - вывод не более 10 чисел в одной строке
Посмотрите здесь:

C++ прога которая содержащий не более 10 строк, в каждой строке не более 80 символов и эти символы вводятся с клавиатуры
C++ Вывод в cout
Подсчёт слов в строке и вывод тех, которые встречаются более n раз C++
C++ Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
C++ Странный вывод cout
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1667
Регистрация: 12.02.2012
Сообщений: 17,117
08.07.2012, 16:33     Cout - вывод не более 10 чисел в одной строке #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;
}
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
08.07.2012, 17:18  [ТС]     Cout - вывод не более 10 чисел в одной строке #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;
}
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1667
Регистрация: 12.02.2012
Сообщений: 17,117
08.07.2012, 18:04     Cout - вывод не более 10 чисел в одной строке #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). Если этого не сделать, мой код не будет работать.
PavelLukyanov
0 / 0 / 0
Регистрация: 08.07.2012
Сообщений: 3
08.07.2012, 18:14  [ТС]     Cout - вывод не более 10 чисел в одной строке #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;
}
Yandex
Объявления
08.07.2012, 18:14     Cout - вывод не более 10 чисел в одной строке
Ответ Создать тему
Опции темы

Текущее время: 17:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru