C中的矩阵错误

时间:2015-11-28 17:02:37

标签: c matrix

我想在C中制作一个程序,有一个矩阵并找出某个位置的数字是否存在,但我得到以下错误:

[解决]

funcao.c:8:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  for(i=0; i=y; y++){
  ^
funcao.c:9:3: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   for(j=0;j=k; k++){
   ^
funcao.c:10:4: error: stray ‘\342’ in program
    if(∗(∗(m+i)+j)==numero){
    ^
funcao.c:10:4: error: stray ‘\210’ in program
funcao.c:10:4: error: stray ‘\227’ in program
funcao.c:10:4: error: stray ‘\342’ in program
funcao.c:10:4: error: stray ‘\210’ in program
funcao.c:10:4: error: stray ‘\227’ in program
funcao.c:10:22: warning: comparison between pointer and integer [enabled by default]
    if(∗(∗(m+i)+j)==numero){
                      ^
make: *** [funcao.o] Error 1

我的代码是这样的:

int find_matriz(int **m, int number, int y, int k){
    int find=0;
    int i,j;
    for(i=0; i<y; y++){
        for(j=0;j<k; k++){
            if(*(*(m+i)+j)==number){
            find=1;
            }
        }
    }
    return find;
}

我在网上找不到任何关于矩阵和此错误的内容。有人可以帮我吗?

[未解决]

我在更改代码后不断收到错误:

make: *** [run] Segmentation fault

主要代码:

int main(void) {

    int m[5][2]={{5,2},{2,1},{4,7},{6,7},{43,98}};

    int y=2;

    int k=1;

    int number=2;

    int find=find_matriz(m, number, y, k);

    printf("find %d\n",find);

    return 0;

}

2 个答案:

答案 0 :(得分:0)

if条件中的两颗星不是普通的星号,而是另一个看起来相似的角色。仔细观察,它们看起来与参数列表中的有点不同。

答案 1 :(得分:0)

for(i=0; i=y; y++){
    for(j=0;j=k; k++){

请参阅这些bot h循环及其条件i=yj=k。您可以为它们分配警告所针对的值。

可能这样做 -

for(i=0; i<y; i++){
    for(j=0;j<k; j++){

而这 -

if(∗(∗(m+i)+j)==number){

这些不是用于取消引用指针的运算符。

使用*取消引用 -

if(*(*(m+i)+j)==number){   // or simply write m[i][j]