Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 20.02.2011
Сообщений: 51
1

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

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

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

Программу написал, единственное, что не могу понять, почему без скобок по обе стороны указателя на тип (строка 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2011, 01:21
Ответы с готовыми решениями:

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

Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки
Доброго времени суток. Подскажите пожалуйста алгоритм или путь к решению задачи, используя СТЕК ...

Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return.
#include &lt;iostream&gt; using namespace std; int main(){ int *ptr_number = new int; int *sum =...

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

8
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
13.03.2011, 01:27 2
lesorub_, не знаю на счет указателей. но мне известно что мол функция main должна возвращать значение..
int main()
return ;
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
13.03.2011, 01:39 3
Цитата Сообщение от instagib Посмотреть сообщение
lesorub_, не знаю на счет указателей. но мне известно что мол функция main должна возвращать значение..
int main()
return ;
Зачем? void тоже работает.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 01:43 4
Цитата Сообщение от Chelioss Посмотреть сообщение
Зачем? void тоже работает.
В стандарте языка нет такой перегрузки функции main().
0
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
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
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
13.03.2011, 03:00 7
Цитата Сообщение от asics Посмотреть сообщение
В стандарте языка нет такой перегрузки функции main().
Я пока новичек. У меня в Visual Studio 2008 все прекрасно работает.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 04:15 8
В 51 строке перед тем, как передать параметры в функцию, ты приводишь их к соответствующим типам. А если убрать скобки, то получится синтаксическая ошибка - повторное объявление функции
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
13.03.2011, 13:06 9
Chelioss, если работает, то это ещё не значит, что так правильно. Прислушайтесь к asics и не зависимо от того, новичок вы или опытный программист, делайте так, как правильно, а не так, как работает.
0
13.03.2011, 13:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2011, 13:06
Помогаю со студенческими работами здесь

Вопрос про Swich
Пример: int i=2; switch (i) { case 1: i += 2; case 2: i *= 3; case 0: i /= 2; case 4: i -= 5;...

Вопрос про классы
Такой пример. Базовый класс First, и два производных от него класса Second и Third. First*ar={new...

Вопрос про конструктор
цитата исходного кода из книги: class stock{ ... public: stock(); //Типа объявление...

Вопрос про mkdir
У меня уже есть идея реализации но мне кажется есть способ проще! И так к делу вот часть кода...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru