Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
lesorub_
2 / 2 / 0
Регистрация: 20.02.2011
Сообщений: 51
1

вопрос про скобки

13.03.2011, 01:21. Просмотров 687. Ответов 8
Метки нет (Все метки)

Здравствуйте, получил задание написать программу, смысл которой заключается в умножении матрицы на столбец. Матрица статическая, функция умножения пишется собственная.

Программу написал, единственное, что не могу понять, почему без скобок по обе стороны указателя на тип (строка 51) функция не работает? Объясните пожалуйста этот момент, вот код:

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
#include <iostream>
 
using namespace std;
#define n 3
#define m 3
 
void product_mas_st(double *matrix, double *vector, double *product) //функция произведения cтатической матрицы на столбец
{ 
int i, j;
cout << "Произведение (A * B): " << endl;
for (i=0; i<n; i++) 
{ 
product[i] = 0;
for (j=0; j<m; j++) 
product[i] += matrix[i*m+j]*vector[j]; 
}
 
}
 
 
 
void main()
{ 
setlocale(LC_ALL, "Russian");
 
// Статистический массив
 
cout << "Статический массив\n\n";
 
int i,j;          
double matrix_st[n][m], vector_st[m], product_st[n];
 
cout << "Введите элементы матрицы A[" << n << "][" << m <<"]: ";
 
for(i=0; i<n; i++) 
for(j=0; j<m; j++) 
cin >> matrix_st[i][j];
 
for(i=0; i<n; i++){ 
    for(j=0; j<m; j++)
        cout << "\t" << matrix_st[i][j];
    cout << endl << endl;}
 
cout << "Введите элементы вектора B[" << m << "]: ";
for(j=0; j<m; j++)
    cin >> vector_st[j];
for(j=0; j<m; j++)
{cout << "\t" <<vector_st[j];
cout << endl << endl;}
 
product_mas_st((double*) matrix_st, (double *)vector_st, (double *)product_st);
for(i=0; i<n; i++) 
cout << "\t" << product_st[i] << endl << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2011, 01:21
Ответы с готовыми решениями:

Задача про скобки
Всем привет. Недавно показали мне такую задачу: ... намекнув на рекурсию....

Вопрос про цикл for
Скажите, а есть ли какая-то разница в записях: for (int i=0; i&lt;n; i++) и for...

Вопрос про файлы
где распологать текстовый файл, чтобы программа видела его сразу без прописания...

[C++] Вопрос про ввод
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; void main() { char adress;...

Вопрос про ф-ию mul
Расскажите пожалуйста про ф-ию mul, перегружаемую в классе. Что она делает?

8
instagib
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 01:27 2
lesorub_, не знаю на счет указателей. но мне известно что мол функция main должна возвращать значение..
int main()
return ;
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
13.03.2011, 01:39 3
Цитата Сообщение от instagib Посмотреть сообщение
lesorub_, не знаю на счет указателей. но мне известно что мол функция main должна возвращать значение..
int main()
return ;
Зачем? void тоже работает.
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 01:43 4
Цитата Сообщение от Chelioss Посмотреть сообщение
Зачем? void тоже работает.
В стандарте языка нет такой перегрузки функции main().
0
instagib
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 01:54 5
lesorub_, попробуй написать без звездочек и скобок например
C++
1
product_mas_st(matrix_st, vector_st, product_st);
ибо обычно когда передают в функцию параметры, не создают их там же к примеру:

func(int x, int y);


а так func(x, y);
0
lesorub_
2 / 2 / 0
Регистрация: 20.02.2011
Сообщений: 51
13.03.2011, 02:04  [ТС] 6
Цитата Сообщение от instagib Посмотреть сообщение
lesorub_, попробуй написать без звездочек и скобок например
C++
1
product_mas_st(matrix_st, vector_st, product_st);
ибо обычно когда передают в функцию параметры, не создают их там же к примеру:

func(int x, int y);


а так func(x, y);
пробовал, ошибка осталась
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
13.03.2011, 03:00 7
Цитата Сообщение от asics Посмотреть сообщение
В стандарте языка нет такой перегрузки функции main().
Я пока новичек. У меня в Visual Studio 2008 все прекрасно работает.
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 04:15 8
В 51 строке перед тем, как передать параметры в функцию, ты приводишь их к соответствующим типам. А если убрать скобки, то получится синтаксическая ошибка - повторное объявление функции
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
13.03.2011, 13:06 9
Chelioss, если работает, то это ещё не значит, что так правильно. Прислушайтесь к asics и не зависимо от того, новичок вы или опытный программист, делайте так, как правильно, а не так, как работает.
0
13.03.2011, 13:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 13:06

Вопрос про __function
вопрос глупый, но все же: зачем в названии функциях пишут две __ - void...

Вопрос про цикл.
Добрый день. Попал в тупик, не знаю как закрутить cin&gt;&gt; в цикл подскажите...

вопрос про указателей
вот напр эта строка int *m=new int; это как я понял создается...


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

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

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