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

Ошибка с присвоением значений к массивам - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найдите ошибки http://www.cyberforum.ru/cpp-beginners/thread1165474.html
class ABC{ int a=3; int b; int c; public: ABC(int n=1) {b=n;} mul() {c=1+a*b;} };
C++ Найдите ошибку в классе В классе PRIMER объявлен прототип int PRIMER(int a, float pi); http://www.cyberforum.ru/cpp-beginners/thread1165471.html
Списки(односторонний список со структурой) C++
Необходимо организовать односторонний список со структурой(код структуры ниже). Сделать следующие действия: 1) Добавление элементов в список; 2)Удаление элементов со списка; 3)Добавление элемента в конец списка; 4)Поиск за заданным полем; 5) Печать списка Код структуры: #include<stdio.h> #include<conio.h> #include <cstring>
C++ Алгоритм Лемпела-Зивы. Программа не выходит из цикла
Данная программа реализует (почти) Алгоритм Лемпела-Зивы #include <vector> #include <string> #include <iostream> #include <fstream> #include <utility> #include <algorithm> using namespace std;
C++ Выход из цикла http://www.cyberforum.ru/cpp-beginners/thread1165433.html
Доброго времени суток. Подскажите, пожалуйста как сделать выход из цикла при нажатии 0 в меню. Пытался так на ESC, но не выходит. #include <iostream> #include <conio.h> //include library with getch() function using namespace std; int main() { char q; do
C++ В тексте найти слова , которые встречаются больше N раз Введен текст . В этом тексте найти слова , которые встречаються больше N раз . Эти слова записать в отдельный массив . #include "stdafx.h" #include <iostream> #include <cstdlib> #include <cstdio> #include <string> using namespace std; char s; // исходная строка const int n=20; typedef char array; подробнее

Показать сообщение отдельно
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
06.05.2014, 09:25     Ошибка с присвоением значений к массивам
Вообще мне не очень понятно что ты делаешь в коде. Но пару явных ошибок исправил. Теперь нет инфинитива при выводе.
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#include <iostream>
#include <math.h>
 
 
// VEC
double x[10], x_1[10], ax[10], ax_1[10], c[10];
 
// MATR
double e[10][10], a[10][10], a_1[10][10], b[10][10], b_1[10][10], br[10][10], br_1[10][10];
 
double drob(int a, int b) {
    return static_cast<double>(a) / b;
}
 
void readvec(char *name, int n) {
    int a, b;
    char h;
    std::cout << "Введите вектор " << name << " размера " << n << "\n";
    for (int i = 0; i < n; i++) {
        std::cout << " " << name << "[" << i << "]=";
        std::cin >> a >> h >> b;
        std::cout << "Получившаяся дробь : " << drob(a, b) << "\n";
        x[i] = drob(a, b);
    }
    std::cout << "\n";
}
void writevec(double x[10], char *name, int n) {
 
    std::cout << "Вывести вектор " << name << " размера " << n << "\n";
    for (int i = 0; i<n; i++) {
        std::cout << std::fixed << " " << name << "[" << i << "]=" << x[i] << "\n";
    }
}
void readmatr(char *name, int n, int m, char *type) {
    int c, b;
    char p;
 
    std::cout << "Введите матрицу " << name << " размера " << n << "x" << m << "\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            std::cout << " " << name << "[" << i << ", " << j << "]=";
            std::cin >> c >> p >> b;
            std::cout << "Получившаяся дробь : " << drob(c, b) << "\n";
            if (strcmp(type, "A") == 0)
                a[i][j] = drob(c, b);
            if (strcmp(type, "B") == 0)
                a_1[i][j] = drob(c, b);
        }
    }
    std::cout << "\n";
}
void writematr(double y[10][10], char *name, int n, int m) {
 
    std::cout << std::fixed << "Вывести матрицу " << name << " размера " << n << "x" << m << "\n";
    for (int i = 0; i<n; i++)
    for (int j = 0; j<m; j++) {
 
        std::cout << std::fixed << " " << name << "[" << i << ", " << j << "]=" << y[i][j] << "\n";
    }
}
 
void Em(int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j)
                e[i][j] = 1;
            else
                e[i][j] = 0;
        }
    }
}
 
void Rmatr(double a[10][10], double b[10][10], int n, int m, char *type) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (strcmp(type, "A") == 0)
                br[i][j] = a[i][j] - b[i][j];
            if (strcmp(type, "B") == 0)
                br_1[i][j] = a[i][j] - b[i][j];
        }
    }
}
 
void obrmatr(double AIS[10][10], double AP[10][10], int n, char *type) {
    double a[10][10];
    for (int i = 0; i<10; i++)
    for (int j = 0; j<10; j++)
        a[i][j] = AIS[i][j];
 
    for (int k = 0; k<n; k++){
        for (int j = 0; j<n; j++)
        if (j != k){
            if (strcmp(type, "A") == 0)
                b[k][j] = -a[k][j] / a[k][k];
            if (strcmp(type, "B") == 0)
                b_1[k][j] = -a[k][j] / a[k][k];
        }
        for (int i = 0; i<n; i++)
        if (i != k){
            if (strcmp(type, "A") == 0)
                b[i][k] = a[i][k] / a[k][k];
            if (strcmp(type, "B") == 0)
                b_1[i][k] = a[i][k] / a[k][k];
        }
        for (int i = 0; i<n; i++)
        for (int j = 0; j<n; j++)
        if (i != k && j != k){
            if (strcmp(type, "A") == 0)
                b[i][j] = a[i][j] - a[i][k] * a[k][j] / a[k][k];
            if (strcmp(type, "B") == 0)
                b_1[i][j] = a[i][j] - a[i][k] * a[k][j] / a[k][k];
        }
        if (strcmp(type, "A") == 0)
            b[k][k] = 1 / a[k][k];
        if (strcmp(type, "B") == 0)
            b_1[k][k] = 1 / a[k][k];
 
        for (int i = 0; i<10; i++)
        for (int j = 0; j<10; j++)
            a[i][j] = AP[i][j];
    }
}
 
void matrvec(double b[10][10], double c[10], int n, char *type) {
    for (int j = 0; j<n; j++) {
        if (strcmp(type, "A") == 0)
            x[j] = 0;
        if (strcmp(type, "B") == 0)
            x_1[j] = 0;
        if (strcmp(type, "C") == 0)
            ax[j] = 0;
        if (strcmp(type, "D") == 0)
            ax_1[j] = 0;
        for (int i = 0; i<n; i++){
            if (strcmp(type, "A") == 0)
                x[j] = x[j] + b[i][j] * c[i];
            if (strcmp(type, "B") == 0)
                x_1[j] = x_1[j] + b[i][j] * c[i];
            if (strcmp(type, "C") == 0)
                ax[j] = ax[j] + b[i][j] * c[i];
            if (strcmp(type, "D") == 0)
                ax_1[j] = ax_1[j] + b[i][j] * c[i];
        }
    }
}
 
 
 
int main() 
{
    setlocale(LC_ALL, "Russian_Russia.1251");
    
    readvec("C", 2);
    readmatr("A", 2, 2, "A");
    readmatr("Z", 2, 2, "B");
 
    Em(2);
 
    Rmatr(e, a, 2, 2, "A");
    Rmatr(e, a_1, 2, 2, "B");
 
    obrmatr(br, b, 2, "A");
    obrmatr(br_1, b_1, 2, "B");
 
    matrvec(b, c, 2, "A");
    matrvec(b_1, c, 2, "B");
    matrvec(a, x, 2, "C");
    matrvec(a_1, x_1, 2, "D");
 
    if (ax[0] <= c[0] && ax[1] <= c[1])
        std::cout << "Экономика матрицы A - эффективна\n";
    else
        std::cout << "Экономика матрицы A - не эфективна \n";
    if (ax_1[0] <= c[0] && ax_1[1] <= c[1])
        std::cout << "Экономика матрицы A_1 - эффективка \n";
    else
        std::cout << "Экономика матрицы A_1 - не эффективка \n";
    std::cout << "\n";
 
    writematr(b, "B", 2, 2);
    writematr(b_1, "Z", 2, 2);
    writevec(x, "x", 2);
    writevec(x_1, "y", 2);
 
    system("pause");
    return 0;
}
 
Текущее время: 01:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru