gpt4 book ai didi

C二维数组最小的变成最大的

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:36 25 4
gpt4 key购买 nike

我是 stackoverflow 的新手,也是编程的新手,但我并不是真正的“专业和狂热的程序员”。爱好者可能但不专业......

在我的一些初学者代码的一部分中,我有一个二维数组 diff[i][j],其中 i==j 的值为零.我正在尝试获取每行中的最小值而不是零值...

搜索第一行最小值的代码(正在构建)部分是:

i=1;
double smallest;
for ( j=1 ; j<=n ; j++ )
{
smallest = diff[i][j];

if ( j!=i && diff[i][j] < smallest )
smallest = diff[i][j];
}

printf("\n %lf\n", smallest);

然而,结果总是最大的数而不是最小的数。谁知道为什么??

附言对于处理 stackoverflow.com 的任何建议或评论以及我提出问题的方式,我将不胜感激,因为我是新来的...提前谢谢您...

编辑在得到下面的答案之后,我决定将 i=1 作为一个特例,并为这两种情况创建两个单独的函数……但是,当我尝试将 j 分配给其他变量时,我失败了……在前面的代码中:

if (j!=i && diff[i][j]<smallest) {smallest=diff[i][j]; d=j}

之前声明过 d 和所有内容...当我打印 d 时它打印一个随机数>可能是内存位置内容...尝试调试以分配一个初始值 - 声明 - 并且在打印时它出现了初始值值...重点是我想要保留最小值所在的列...我怎样才能实现?

最佳答案

你永远不会初始化最小值

i=1;
double smallest = diff[1][2]; // initialize it to a non-diagonal element in the column
for (j=1; j<=n; j++)
if (j!=i && diff[i][j]<smallest){
smallest=diff[i][j];
}
printf("\n %lf\n", smallest);

编辑:

你似乎也有 { smallest= diff[i][j]; .. 在您的代码中覆盖最小的每次迭代的值。我在回答中删除了它。

关于C二维数组最小的变成最大的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514975/

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