gpt4 book ai didi

C编程: functions with arrays

转载 作者:行者123 更新时间:2023-11-30 20:14:09 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数查找行为 4、列为 4 的二维数组中的最大值,其中二维数组填充有用户输入。我知道我的主要错误是函数中的数组,但我不确定它是什么。

如果有人能够找到我出错的地方而不是编写新代码,我将不胜感激。除非我刚去南方。

我的尝试:

#include <stdio.h>

void largest(int array);

int main() {
int x,y,trash;
int array[4][4];
int row = 4;
int col = 4;
int bigNum,greater;
bigNum=largest(array);
printf("Please enter a value: ")

for(x=0;x<row;x++) {
for(y=0;y<(col);y++) {
scanf("%d",&array[x][y]);
scanf("%d",&trash);
}
}

printf("The largest number in the array is : ",bigNum);
}

void largest(int array[][]) {
for(x=0; x<row; x++) {
for(y=0; y<(col-1); y++) {
if (array[x][y] > array[x][y+1]) {
array[x][y+1] = array[x][y];
}
}
printf("\n")
}
big = array[x][y];
return big;
}

最佳答案

这里有几个问题需要解决,第一是你不能拥有 int array[][]作为参数,您需要提供除第一个维度之外的所有维度 int array[][4]在这种有限的情况下就足够了。

但是,自从 rowcolmain 中的局部变量它们对您的 largest 不可见函数体,因此需要传递它们,制作签名

void largest(int row, int col, int array[row][col]);

由于这是一个 void 函数,因此它不能返回任何值。不过,它会修改给定的数组,因此更改将是可见的。

如果您正在寻找直接的日志错误,那么找到最大的函数是非常疯狂的。更明智的实现是只跟踪迄今为止您所看到的最大元素:

int largest(int row, in col, int array[row][col]) {
int big = array[0][0]; // assume the first element is the largest
for (int i = 0; i < row, ++i) {
for (int j = 0; j < col; ++j) {
if (array[i][j] > big) big = array[i][j];
}
}
return big;
}

然后您可以从 main 调用该函数为

int bigNum = largest(row, column, array);

关于C编程: functions with arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com