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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не выводит структуры http://www.cyberforum.ru/cpp-beginners/thread716317.html
Народ такая проблема, не могу вывести нормально структуры ;( И выводе списка с условием(функция Resc) если выводить просто if (abit.sumball>220) то он нормально выводит и никаких проблем не...
C++ Объединения union MyUnion { int int_num; long long ll_num; }; int main() { MyUnion uni; uni.int_num = INT_MAX; http://www.cyberforum.ru/cpp-beginners/thread716307.html
Задачи с массивом и на символьные переменные! C++
Друзья,помогите пожалуйста студенту! Очень нужно решить эти задания! Буду очень благодарен! (сам ничего не понимаю) Изучали 1 пару только,все поверхностно... 1. Найти количество элементов в...
Инициализация указателей C++
Добрый вечер, объясните пожалуйста, что значит присвоение начальных значений указателям, как например в данном случае: float *fPtr = 0; char *color="white"; если я после этих строк хочу вывести...
C++ Множества точек на плоскости http://www.cyberforum.ru/cpp-beginners/thread716301.html
Даны 2 множества точек на плоскости. Выбрать 3 различные точки первого множества так , что бы треугольник с вершинами в этих точках накрывал все точки второго множества и имел минимальную площадь. ...
C++ Неправильно считает количество столбцов, не содержащих ни одного нулевого элемента #include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <ctime> int rnd( int range_min, int range_max ) { return (double)rand() / (RAND_MAX +... подробнее

Показать сообщение отдельно
lie_imir
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 1

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

02.12.2012, 15:24. Просмотров 351. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.