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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
#1

invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’ - C++

02.05.2011, 13:26. Просмотров 1872. Ответов 1
Метки нет (Все метки)

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
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define count 120
int main(int argc,char *argv[])
{
int i, j, size, rank, procname, res;
double a[count][count], send_af[count], b[count], result=0;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Get_processor_name(processor_name, &procname);
 
/*Generate*/
if(rank == 0){
    for(i=0; i<count; i++){
        b[i]=cos(i);
        for(j=0; j<count; j++){
            a[i][j]=sin(i+j);//printf("%f \n",a[i][j]);
        }
    }
}
int send_count=count*count/size;
double** send_a = new double*[send_count];
MPI_Scatter(a, send_count, MPI_DOUBLE, send_a, send_count, MPI_DOUBLE, 0, MPI_COMM_WORLD);
MPI_Bcast(b, count, MPI_DOUBLE, 0, MPI_COMM_WORLD);
for(i=0; i<=(send_count/count)-1; i++){
    result=0;
for(j=0; j<=count; j++){
    res=i*count+j;
    result+=send_a[res]*b[j];
}
printf("process= %i, result=%f /n", rank, result);
}
//for(i=0; i<=count; i++){printf("proc= %i, b[%i]=%f \n",rank, i, b[i]);}
 MPI_Finalize();
 return 0;
}

XML
1
2
3
4
5
/mpi/laba8_nomy/main.cpp||In function ‘int main(int, char**)’:|
/mpi/laba8_nomy/main.cpp|34|error: invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’|
/mpi/laba8_nomy/main.cpp|9|warning: unused variable ‘send_af’|
/mpi/laba8_nomy/main.cpp|11|warning: unused variable ‘status’|
||=== Build finished: 1 errors, 2 warnings ===|
Ругается на эту строчку result+=send_a[res]*b[j];
Моего мозга не хватает что бы понять в чем проблема..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 13:26     invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’
Посмотрите здесь:
invalid operands of types 'double' and 'int' to binary 'operator%' C++
C++ error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
C++ Error: invalid types 'double [10][10][double]' for array subscript
invalid types ‘Room [26][26][26][double]’ for array subscript. Помогите разобраться пожалуйста. C++
C++ Ошибка в написании шаблона: invalid operands of types ‘int’ and ‘<unresolved overloaded function type>’
Бинарный поиск, ошибка: "Invalid operands to binary expression" C++
Почему мы пишем double x (double y)? а не через запятую double x,y C++
C++ Исправить ошибку "invalid operands of types..."
Ошибка с pow: "invalid operands of types" C++
Перегрузка operator*(double, complex) C++
C++ Сравнение long double (Invalid floating...)
Исправить ошибки "cannot convert 'double (*)(double)' to 'double'" и "too many arguments to function" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
02.05.2011, 13:28     invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’ #2
kolorimage, b - массив.
a_res - массив указателей.
Все еще не понятно?
Ответ Создать тему
Опции темы

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