21xrx.com
2024-11-22 09:39:00 Friday
登录
文章检索 我的文章 写文章
Struct C语言复数排序及其输出
2023-06-15 07:46:23 深夜i     --     --
C语言 结构体 复数 排序 模大小 输出

在C语言中,结构体是一种非常有用的数据类型,它允许你将不同类型的数据组合在一起。本文将讲述如何在C语言中使用结构体对复数进行排序并输出。

首先,我们需要定义一个结构体来表示复数。复数由实数和虚数两部分组成,我们可以将其表示为一个含有两个实数成员的结构体。


struct Complex

float real;

float imag;

;

接下来,我们可以编写一个函数来比较两个复数的大小。比较的方式可以按照复数的模大小(即复数平面上离原点的距离)来进行。


int compare(Complex a, Complex b) {

  return (a.real * a.real + a.imag * a.imag) > (b.real * b.real + b.imag * b.imag);

}

现在我们可以写一个排序算法,将一组复数按照模从小到大排序。


void sort(Complex arr[], int n) {

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

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

      if(compare(arr[j], arr[i])) {

        Complex temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

      }

    }

  }

}

最后,我们可以编写一个函数来输出已排序的复数。


void print(Complex arr[], int n) {

  for(int i = 0; i < n; i++) {

    printf("%f + %fi\n", arr[i].real, arr[i].imag);

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复