Автор | Сообщение |
|
Отправлено: 28.07.12 12:02. Заголовок: Поиск ошибки в программе для умножения матриц.
здрасте. В общем, я почти закончил свою программу. Так мне кажется. Но, при компиляции создается екзешник, затем по началу программа работает. Ввожу элементы матрицы, но до самих расчетов не доходит. Вот сам исходник: цитата: | #include <iostream> #include <conio.h> using namespace std; int main() { int i=1,j=1,k=1,l=1; int sum , rd1 , st1 , rd2 , st2 ; char ch; // ввод расширения первой матрицы. cout << "Vveditb rozmirnistb pershoi Matruci: "; cin >> rd1; cin >> st1; // ввод расширения 2 матрицы. cout << "Vveditb rozmirnistb dryhoi matruci: "; cin >> rd2; cin >> st2; // выход при не соответствии. if (st1 != rd2) { cout << "\nMatruc9 ne ob4usljuets9!"; getch(); return 0; } // ввод элементов матриц. int a[rd1][st1]; for (i=1; i<=rd1; i++){ for (j=1; j<=st1; j++){ cout << "vveditb element a " << i << "_" << j << " = " << endl; cin >> a[j]; } }; int b[rd2] [st2]; for (k=1; k<=rd2; k++){ for (l=1; l<=st2; l++){ cout << "vveditb element b " << k << "_" << l << " = " << endl; cin >> b[k][l]; } }; cout << endl; // умножение. int t=0,z; int C[j][t]; for (int j=0; j<rd2; j++){ while (t<st1){ for (int i=0; i<st1; i++){ z = a[t] * b[t] + z; } C[j][t] = z; t++; } t=0; } // вывод результата i=1; j=1; for (int i=1; i<=rd1; i++){ for (int j=1; j<=st2; j++){ cout << C[j]; } cout << endl; } system("PAUSE"); return 0; } |
| - если не трудно, посмотрите в чем может быть ошибка тут. Уже весь день с этой прогой сижу...
|
|
|
Ответов - 70
, стр:
1
2
3
4
All
[только новые]
|
|
|
Отправлено: 28.07.12 13:52. Заголовок: akira пишет: - а ка..
akira пишет: цитата: | - а как это прописать? cout << b[k] << " " << [l]; так? |
| Одного пробела для вызова достаточно. то есть пробел можно заключить в одинарные кавычки.
|
|
|
|
Отправлено: 28.07.12 13:53. Заголовок: Сыроежка пишет: Одн..
Сыроежка пишет: цитата: | Одного пробела для вызова достаточно. то есть пробел можно заключить в одинарные кавычки. |
| - можете пример показать?
|
|
|
|
Отправлено: 28.07.12 13:55. Заголовок: Сыроежка пишет: Это..
Сыроежка пишет: Это тот же код, что вы сами привели цитата: | - а как это прописать? cout << b[k] << ' ' << [l]; так? |
| Только пробел я поставил в одинарные кавычки. Разница в том, что когда используются одинарные кавычки, то это - один символ. А когда используются двойные кавычки - это это символьный массив, состоящий из символа пробела и завершающего символьного нуля. Только и всего.
|
|
|
|
Отправлено: 28.07.12 13:56. Заголовок: Сыроежка пишет: Тол..
Сыроежка пишет: цитата: | Только пробел я поставил в одинарные кавычки. Разница в том, что когда используются одинарные кавычки, то это - один символ. А когда используются двойные кавычки - это это символьный массив, состоящий из символа пробела и завершающего символьного нуля. Только и всего. |
| - ошибку пишет. expected primary-expression before '[' token
|
|
|
|
Отправлено: 28.07.12 13:57. Заголовок: У меня в примере, гд..
У меня в примере, где написал эту функцию, все есть. Скопируй оттуда вывод. В данном же случае ругается на на последние непонятные фигурные скобки.
|
|
|
|
Отправлено: 28.07.12 13:58. Заголовок: Сыроежка пишет: Ско..
Сыроежка пишет: - я так и сделал. суть в том, что если убрать эти << ' ' << то все нормально работает.
|
|
|
|
Отправлено: 28.07.12 13:59. Заголовок: akira пишет: - я та..
akira пишет: цитата: | - я так и сделал. суть в том, что если убрать эти << ' ' << то все нормально работает. |
| У тебя синтаксически неправильная конструкция. Должно быть cout << a[ i ][ j ] << ' '; Таким образом должна выводиться строка элементов матрицы. После вывода строки пишешь cout << endl;
|
|
|
|
Отправлено: 28.07.12 14:00. Заголовок: Сыроежка пишет: У т..
Сыроежка пишет: цитата: | У тебя синтаксически неправильная конструкция. Должно быть cout << a[ i ][ j ] << ' '; Таким образом должна выводиться строка элементов матрицы. После вывода строки пишешь cout << endl; |
| - вышло. каким оператором в функции можно осуществить выход?
|
|
|
|
Отправлено: 28.07.12 14:08. Заголовок: akira пишет: каким ..
akira пишет: цитата: | каким оператором в функции можно осуществить выход? |
| Если у функции тип возвращаемого значения объыявлен как void, то функция завершит свою работу по достижению закрывающейся фигурной скобки тела функции. Либо можно вставить предложение return; Но оно будет просто тлишним, если логика выполнения функции достигает закрывающейся фигурной скобки.
|
|
|
|
Отправлено: 28.07.12 14:09. Заголовок: Сыроежка пишет: Есл..
Сыроежка пишет: цитата: | Если у функции тип возвращаемого значения объыявлен как void, то функция завершит свою работу по достижению закрывающейся фигурной скобки тела функции. Либо можно вставить предложение return; Но оно будет просто тлишним, если логика выполнения функции достигает закрывающейся фигурной скобки. |
| - я уже сам справился. сделал через return возвращение к началу программы.
|
|
|
Ответов - 70
, стр:
1
2
3
4
All
[только новые]
|
|