你好,stackoverflow 社区。这将是我在扫描本网站的许多页面和更多网站试图找出我的代码有什么问题后寻求帮助的第一篇文章。一些背景知识 - 这是在介绍 c 课程时给我的作业。我对它和任何其他编程语言都没有任何高级知识,所以请放轻松。我需要编写一个程序,该程序使用我编写的两个函数来查找二维数组中的一个单元格与其右侧相邻单元格之间的总距离。我还需要计算比所有邻居都大的元素的数量。这是我的镜头:
1)#include <stdio.h>
2)#define N 4
3)int is_strong(int matrix[][N], int row, int column);
4)int Space_rank(int matrix[][N], int row, int column);
5)int My_abs(int);
6)int main()
7){
8) int matrix[N][N];
9) printf("Please enter a matrix: \n");
10) for(int i=0; i<N; i++)
11) {
12) for(int j=0; j<N; j++) scanf("%d", &matrix[i][j]);
13) }
14) int Strong_Amount=0, Total_Space=0;
15) for(int i=0; i<N; i++)
16) {
17) for(int j=0; j<N; j++)
18) {
19) Strong_Amount+=is_strong(matrix[N][N], i, j);
20) Total_Space+=Space_rank(matrix[N][N], i, j);
21) }}
22) printf("Strong elements: %d\n Space rank: %d\n", Strong_Amount,Total_Space);
23) return 0;
24)}
25)
26)int is_strong (int mat[N][N], int row, int column)
27){
28) int Below, Above, Right, Left;
29) int Subject=mat[row][column];
30) Below=mat[row+1][column];
31) Above=(row-1!=0)*mat[row-1][column];
32) Right=mat[row][column+1];
33) Left=(column-1!=0)*mat[row][column-1];
34) int Answer=(Subject>Above && Subject>Below && Subject>Right && Subject>Left);
35) return Answer;
36)}
37)
38)int Space_rank(int mat[N][N], int row, int column)
39){
40) int Subject=mat[row][column], Right;
41) Right=mat[row][column+1];
42) int Space=My_abs(Subject-Right);
43) return Space;
44)}
45)
46)int My_abs(int v)
47){
48) return v*((v>0)-(v<0));
49)}
我收到一条错误消息,说“错误:传递 'is_strong' 的参数 1 使指针来自没有强制转换的整数”第 19 行。我认为我的问题是两个函数类型冲突,但我看不到我做错了什么。任何帮助/提示将不胜感激
这是将数组传递给函数的方式:
19) Strong_Amount+=is_strong(matrix, i, j);
20) Total_Space+=Space_rank(matrix, i, j);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句