我想在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;
}
答案 0 :(得分:0)
if
条件中的两颗星不是普通的星号,而是另一个看起来相似的角色。仔细观察,它们看起来与参数列表中的有点不同。
答案 1 :(得分:0)
for(i=0; i=y; y++){
for(j=0;j=k; k++){
请参阅这些bot h循环及其条件i=y
和j=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]