2015-05-03 94 views
0

我的警告和错误,我需要修复的错误:错误和警告的功能用C

exercici17b.c: In function ‘main’: 
exercici17b.c:16:1: error: incompatible type for argument 1 of ‘imprimeixvector’ 
imprimeixvector(res[5], resu, mat[3][3], vect[3]); 
^ 
exercici17b.c:4:5: note: expected ‘double *’ but argument is of type ‘double’ 
int imprimeixvector(double res[5], double resu, double mat[3][3], double vect[3]); 
    ^
exercici17b.c:16:1: error: incompatible type for argument 3 of ‘imprimeixvector’ 
imprimeixvector(res[5], resu, mat[3][3], vect[3]); 
^ 
exercici17b.c:4:5: note: expected ‘double (*)[3]’ but argument is of type ‘double’ 
int imprimeixvector(double res[5], double resu, double mat[3][3], double vect[3]); 
    ^
exercici17b.c:16:1: error: incompatible type for argument 4 of ‘imprimeixvector’ 
imprimeixvector(res[5], resu, mat[3][3], vect[3]); 
^ 
exercici17b.c:4:5: note: expected ‘double *’ but argument is of type ‘double’ 
int imprimeixvector(double res[5], double resu, double mat[3][3], double vect[3]); 
    ^
exercici17b.c: In function ‘imprimeixvector’: 
exercici17b.c:48:1: warning: control reaches end of non-void function [-Wreturn-type] 
} 
^ 

我的代码,这是一个: 代码具有由矢量乘以矩阵,并给予结果作为另一个向量,并且在函数中使用参数类型时出现错误。

#include <stdio.h> 
#include <math.h> 

void imprimeixvector(double, double, double, double); 

int main() 
{ 
    double res[5], resu=0; 
    double vect[3]={1.1, 2.2, 3.3}; 
    double mat[3][3]={ 
       {1., 1., 0.}, 
       {0., 1., 1.}, 
       {1., 0., 1.}  //matriu 3x3 
      }; 

imprimeixvector(res[0], resu, mat[0][0], vect[0]); 

printf("\n"); 
    return 0; 
} 


void imprimeixvector(double res[5], double resu, double mat[3][3], double vect[3]) 
{ 
    int i, j; 
    for(i=0; i<3; i++) 
    { 
    for(j=0; j<3; j++) 
    { 
     res[i]=vect[j]*mat[i][j]; 
     resu=resu+res[i]; 
    } 
    printf("%d,", (int) resu); 
    resu=0; 
    } 
} 

回答

1

更换

void imprimeixvector(double, double, double, double); 

void imprimeixvector(double res[5], double resu, double mat[3][3], double vect[3]); 

在声明

然后正确地调用该函数中主要有

imprimeixvector(res, resu, mat, vect); 
+0

谢谢你的一切! –