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

Вычисление матрицы и вектора с типом char. Выводятся символы - C++

Восстановить пароль Регистрация
 
lie_imir
Сообщений: n/a
02.12.2012, 15:24     Вычисление матрицы и вектора с типом char. Выводятся символы #1
Функции operationF, operationS возвращают указатели на массив(вектор), двумерный массив(матрицу) соответственно.
При подстановке этих указателей в функции coutMatrix, coutVector, выводится матрица из ковычек, и вектор из апострофов. Как решить чтобы выводились числа? Как я понял нужно преобразование типов...

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include "stdafx.h"
 
using namespace std;
 
char** memoryForMatrix(int N); // Функция выделения памяти для матрицы
char* memoryForVector(int N); // Функция выделения памяти для вектора
 
char** cinMatrix(char **matr, int N); // Функция ввода элементов матрицы с клавиатуры
char* cinVector(char *vect, int N); // Функция ввода элементов вектора с клавиатуры
 
void coutMatrix(char **matr, int N); // Функция Вывода матрицы
void coutVector(char *vect, int N); // Функция Вывода матрицы
 
char* operationF(char **matr, char *vect, char *vect2, int N); // 3x * A (x - вектор, А - матрица)
char** operationS(char **matr, char **matr2, char **matr3, int N); // А + 2 * B (A - матрица, В - матрица)
void operationT(char **matr, int N); // Сумма элементов основной диагонали
 
void deleteMatr(char **matr, int N); // Освобождение памяти из под матрицы
void deleteVect(char *vect); // Освобождение памяти из под вектора
 
int _tmain(char argc, _TCHAR* argv[]) {
    setlocale(LC_ALL, "RUS");
    
    char N = 6;
 
    char **matr1;
    char **matr2;
    char **matr3;
    char *vect1;
    char *vect2;
 
    matr1 = memoryForMatrix(N); 
    matr2 = memoryForMatrix(N);
    matr3 = memoryForMatrix(N);
    vect1 = memoryForVector(N);
    vect2 = memoryForVector(N);
 
    cinMatrix(matr1, N);
    cinMatrix(matr2, N);
    cinVector(vect1, N);
 
    coutMatrix(matr1, N);
    coutMatrix(matr2, N);
    coutVector(vect1, N);
 
    operationF(matr1, vect1, vect2, N);
    operationS(matr1, matr2, matr3, N);
    
    coutMatrix(matr3, N);
    coutVector(vect2, N);
    
 
    operationT(matr3, N);
 
    deleteMatr(matr1, N);
    deleteMatr(matr2, N);
    deleteMatr(matr3, N);
    deleteVect(vect1);
    deleteVect(vect2);
 
    getch();
    return 0;
}
 
char** memoryForMatrix(int N) {
    char **matr;
    matr = (char **) calloc(N, sizeof(char *));
 
    for(int i = 0; i < N; i++)
        matr[i] = (char *) calloc(N, sizeof(char));
    
    return matr;
}
char* memoryForVector(int N) {
    char *vect;
    vect = (char *) calloc(N, sizeof(char));
    return vect;
}
 
char** cinMatrix(char **matr, int N) {
    cout << "Введите матрицу:" << endl;
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
            cin >> matr[i][j];
    return matr;
}
 
char* cinVector(char *vect, int N) {
    cout << endl << "Введите вектор: " <<endl;
    for(int i = 0; i < N; i++)
        cin >> vect[i];
    return vect;
}
 
void coutMatrix(char **matr, int N) {
    cout <<endl << "Матрица:" << endl;
    for(int i = 0; i < N; cout << "\n", i++)
        for(int j = 0; j < N; j++)
            cout << matr[i][j] << " ";
}
void coutVector(char *vect, int N) {
    cout << endl << "Вектор:" << endl;
    for(int i = 0; i < N; i++)
        cout << vect[i] << endl;
}
 
char* operationF(char **matr, char *vect, char *vect2, int N) {
    for(int i = 0; i < N; i++)
            vect2[i] = 0;
 
    for(int i = 0; i < N; i++)
        for(int j = 0; i < N; i++)
            vect2[i] += vect[j] * matr[i][j];
 
    return vect2;
}
 
char** operationS(char **matr, char **matr2, char** matr3, int N) {
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
            matr3[i][j] = matr[i][j] + (2 * (matr2[i][j]));
    
    
    
    return matr3;
}
 
void operationT(char **matr, int N) {
    int i = 0;
    int j = 0;
    int sum = 0;
 
    while(j < N) {
        sum += matr[i][j];
        i++;
        j++;
    }
    cout << endl << "Сумма элементов главной диагонали: " << sum ;
}
 
void deleteMatr(char **matr, int N) {
    for(int i = 0; i < N; i++)
        free(matr[i]);
    free(matr);
}
 
void deleteVect(char *vect) {
    free(vect);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 15:24     Вычисление матрицы и вектора с типом char. Выводятся символы
Посмотрите здесь:

C++ Действия над типом Char
вывод слова на экран с типом char. C++
C++ Строки с типом char * в С++
Как перегрузить поле с типом Char C++
Преобразовать массив с типом char в массив с типом int C++
Выводятся дополнительные странные символы из vector<unsigned char> C++
C++ Работа с типом char
Структурка (удалить данные с типом char) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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