程序忽略气泡排序功能

时间:2019-05-12 08:57:08

标签: c++ struct bubble-sort

程序应使用冒泡排序对复数数组进行排序。每个复数都定义为一个结构。我有一个计算复数模量并返回它(双精度型)的函数,基于此,我应该将数字按升序排列。

我以为我在气泡排序算法上犯了一个错误,但是我注意到程序只是忽略了“ bubblesort_f”调用,并在不排序的情况下打印了数组。

void bubblesort_f(array vect, const int nelem){

complex tmp;  //complex is the struct identifier

for(int j=0; j<(nelem-1); j++){

    for(int i=0; i<(nelem-1-j); i++){

        double m, n;
        m=modulus_f(vect[i]);
        n=modulus_f(vect[i+1]);

        if (m>n){

        tmp=vect[i];
        vect[i]=vect[i+1];
        vect[i+1]=tmp;      
                }
        }
}


// while in int main() I have:

array v;
readarray_f(v, n);   //function that allows to input array elements
bubblesort_f(v, n);
printarray_f(v, n);  // function printing the array

// and outside of int main() I have:

#define MAXN 100

typedef struct{
double re;
double im;
} complex;

typedef complex array[MAXN];

0 个答案:

没有答案