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

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

Войти
Регистрация
Восстановить пароль
 
lie_imir
Сообщений: n/a
#1

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

02.12.2012, 15:24. Просмотров 334. Ответов 0
Метки нет (Все метки)

Функции 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. Выводятся символы
Посмотрите здесь:

Выводятся дополнительные странные символы из vector<unsigned char> - C++
Здравствуйте! Вот такой простой код: int main() { string a = &quot;asd&quot;; std::vector&lt;unsigned char&gt; buf(a.begin(), a.end()); ...

Работа с типом char - C++
Пожалуйста, помогите понять разницу между этими записями: char a; char *a; char *a; char a;

Строки с типом char * в С++ - C++
Помогите написать программу по строкам c++ При написании программ использовать нуль–терминированные строки и работать только с типом...

Ошибка с типом char - C++
При запуске выдает ошибки связанные с char. На другой версии visual все работало сразу. Не понимаю как исправить их. Ошибки выделены в...

Действия над типом Char - C++
Как узнать сколько содержит сиволов, пустая ли она, содержит ли одни буквы переменная N: ///Подключение библиотек ... char N; ...

Функции для работы с типом char* - C++
Здравствуйте! Подскажите ресурс, где описана реализация основных функции для работы с указателями на строки

Как перегрузить поле с типом Char - C++
нужна перегрузка сложения в классе int o; char *gr; вот если интовское поле было то пишу Text Text::operator+(Text...

вывод слова на экран с типом char. - C++
Помогите пожалуйста не могу решить программу... Дано слово. Вывести это слово на экран с 4 знаками &lt;&lt;+&gt;&gt; в начале слова и с 5 знаками &lt;&lt;*&gt;&gt;...

Не работает шаблонная функция с типом char - C++
Как реализовать шаблон функции для калькулятора для дробей с типом &lt;char&gt;?А то вместо чисел выводатся символы в дробях. С другими типами...

Структурка (удалить данные с типом char) - C++
Привет всемм!!! Нужно было мне написать структурку для стадиона а также удалить &quot;Удалить элемент с заданным названием.&quot; Название имеет...


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

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

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