c - 跳过/忽略包含 c 中值的数组索引

标签 c arrays iteration

我的目标是创建一个 C 函数,用于查找数组的最小值并将其设置为零。到目前为止,我的函数是这样做的,但我希望它忽略/跳过已经为零的索引。

void find_minimum(double a[], int n) {

    int i, index;
    double low;    

    index = 0;
    low = a[0];

    for (i = 1; i < n; i++) {
        if ( a[i] < low && a[i] != 0.0) {
            low = a[i];
            index = i;
        }
    }
    a[index] = 0.0;      
}

我也试过使用这样的 continue 语句:

void find_minimum(double a[],  int n) {

    int i, index;
    double low;

    index = 0;
    low = a[0];

    for (i = 1; i < n; i++) {

        if(a[i] == 0.0){
          continue;
        }
        if ( a[i] < low) {
            low = a[i];
            index = i;
        }
    }
    a[index] = 0.0;
}

我错过了什么或搞砸了什么?

最佳答案

您的问题是,当 a[0] 为零时,您的代码会忽略大小写。尝试将一些常量(如 DOUBLE_MAX)分配给较低的值,然后遍历整个数组(for 初始化语句中的 i = 0 而不是 i = 1)。

void find_minimum(double a[], int n) {

    int i, index;
    double low;    

    index = 0;
    low = DOUBLE_MAX;

    for (i = 0; i < n; i++) {
        if ( a[i] < low && a[i] != 0.0) {
            low = a[i];
            index = i;
        }
    }
    a[index] = 0.0;      
}

关于c - 跳过/忽略包含 c 中值的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837357/

相关文章:

c - 有没有办法将 Linux 共享库加载到特定的内存位置?

谁能用c语言为我简化这段代码?

javascript - 如何使用 Ramda 将数组数组转换为对象数组?

php - 如何在 PHP 中创建返回最后一个数组索引的静态变量?

javascript - Javascript 中回调数组的不同参数

Python,打印字典中每种可能组合的元素和的键

c - 使用结构编程简单存储学生信息

c - 从 fgets() 输入中删除尾随换行符

python - 共轭梯度模块中的矩阵函数

scala - Spark : PageRank example when iteration too large throws stackoverflowError