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

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

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

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

02.12.2012, 15:24. Просмотров 363. Ответов 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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 15:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вычисление матрицы и вектора с типом char. Выводятся символы (C++):

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

Считываю из char d в char ar[100] - выводятся кракозябры - C++
Здравствуйте, уважаемые знатоки программирования. Подскажите, пожалуйста, что делать. Я считываю из моего списка выражение в...

Преобразовать массив с типом char в массив с типом int - C++
Что-то не получается у меня найти инфу именно с преобразованием массивов с char в int. Нахожу только преобразование с числами. ...

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 15:24
Привет! Вот еще темы с ответами:

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

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

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

Что делать с типом unsined char? - C++
Задача: Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа...


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

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

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