С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Оператор cin. Задать ширину для вывода нескольких значений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки http://www.cyberforum.ru/cpp-beginners/thread1072232.html
Нужно предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки (чтобы отследить пошаговую работу алгоритма). У меня что-то идей по...
C++ Рассчитать значение функции по варианту, исходя из заданных параметров: Y(x)=cos(x)-1/tg(x) при x=0,5, в остальных случаях Y=0; Рассчитать значение функции по варианту, исходя из заданных параметров: Y(x)=cos(x)-1/tg(x) при x=0,5,А В ОСТАЛЬНЫХ СЛУЧАЯХ Y=0; http://www.cyberforum.ru/cpp-beginners/thread1072220.html
НОД (Время: 1 сек. Память: 16 Мб Сложность: 15%) C++
есть задача ********/?main=task&id_task=148 и есть код #include <fstream> main(){ std::fstream i( "input.txt" ), o( "output.txt", 2); int a, b; i>>a>>b; while(a)a^=b^=a^=b%=a; o<<b; }
C++ Оформить в виде функций программу
Всем привет! Помогите пожалуйста оформить задачу в виде функций. /*В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массива; •...
C++ Что делаю не так? Составить программу вычисления с применением условного оператора http://www.cyberforum.ru/cpp-beginners/thread1072197.html
Составить программу вычисления с применением условного оператора. Все данные в правых частях формул выбрать самостоятельно и ввести с клавиатуры. Что-то накалякал, но не уверен что это вообще оно....
C++ Сократить код до 101 - 120 символов есть задача ! есть код #include <fstream> int main(){ std::fstream q("input.txt"),o("output.txt",2); int n,a,i,j,s=0; q>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) {q>>a; s+=a; } подробнее

Показать сообщение отдельно
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348

Оператор cin. Задать ширину для вывода нескольких значений - C++

15.01.2014, 17:26. Просмотров 481. Ответов 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
/////////////ÃëîáГ*ëüГ*ûå ïåðåìåГ*Г*ûå, ГЄГ«Г*Г±Г±Г», ñòðóêòóðû/////////
class fraction {
    private: 
        int chisl;
        int znam;
    public:
        fraction(): chisl(0), znam(1) {
            
        }
        fraction(int a, int b): chisl(a), znam (b) {
            
        }
        void vvod() {       
            char ch;
            cin >> chisl >> ch >> znam;
        }
        void vivod() const {
            cout << setw(10) << chisl << "/" << znam;
        }
        void lowterms() {
            long tnum, tden, temp, gcd;
            
            tnum = labs(chisl);
            tden = labs(znam);
            if (tden==0) {
                cout << "Nedopustimiy znamenatel'!";
                exit(1);
            }
            else if (tnum==0) {
                chisl=0;
                znam=1;
                return;
            }
            while (tnum != 0) {
                if (tnum < tden) {
                    temp=tnum;
                    tnum=tden;
                    tden=temp;
                }
                tnum=tnum-tden;
            }
            gcd=tden;
            chisl=chisl/gcd;
            znam=znam/gcd;
            
        }
        void set(int a, int b) {
            chisl = a;
            znam = b;
            lowterms();
        }
        void add(const fraction &a, const fraction &b) {
            chisl = a.chisl*b.znam + b.chisl*a.znam;
            znam = a.znam*b.znam;
            lowterms();
        }
        void sub(const fraction &a, const fraction &b) {
            chisl = a.chisl*b.znam - b.chisl*a.znam;
            znam = a.znam*b.znam;
            lowterms();
        }
        void mul(const fraction &a, const fraction &b) {
            chisl = a.chisl*b.chisl;
            znam = a.znam*b.znam;
            lowterms();
        }
        void div(const fraction &a, const fraction &b) {
            chisl = a.chisl*b.znam;
            znam = a.znam*b.chisl;
            lowterms();
        }
};
/////////////Ïðîòîòèïû ГґГіГ*êöèé////////////////////////////////
void writechar(char ch, int n);
//////////////////////////////////////////////////////////////
int main()
{
    fraction f1, f2, f3;
    int z;
    
    cout << "Vvedite znamenatel': ";
    cin >> z;
    
    for (int i=1; i<z; i++) {
        f1.set(i,z);
        f1.vivod();
    }
    
    cout << endl;
    writechar('-',80);
    
    for (int i=1; i<z; i++) {
        for (int j=1; j<z; j++) {
            f1.set(i,z);
            f2.set(j,z);
            f3.mul(f1,f2);
            f3.vivod();
        }
        cout << endl;
    }
    
    
    return 0;
}
//////////////////////////////////////////////////////////////
void writechar(char ch, int n) {
    for (int i=0; i<n; i++) {
        cout << ch;
    }
}
Таблицу выводят два цикла for (один в другом).
C++
1
void vivod();
- метод вывода дроби. В нём находится оператор вывода значений числителя и знаменателя дроби:
C++
1
cout << setw(10) << chisl << "/" << znam;
Но.. манипулятор setw(10) выделяет 10 знаков лишь под значение числителя, а не под "chisl/znam", из-за чего вся таблица становится кривой.
Вопрос: Как сделать так, чтобы 10 знаков выделялось под "всю дробь"?
Вот скрин работы программы:
Оператор cin. Задать ширину для вывода нескольких значений
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.