21xrx.com
2025-03-23 10:28:55 Sunday
文章检索 我的文章 写文章
Struct C语言复数排序及其输出
2023-06-15 07:46:23 深夜i     11     0
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);
  }
}

  
  

评论区

    相似文章
请求出错了