A°604 2023-12-09 21:24 采纳率: 0%
浏览 4
已结题

C++求椭圆面积并排序

卡在了排序上面,问题就是:假如第一轮筛选出第4组是最小,进行第二轮筛选时,怎么将原来第4组扣除?输出的时候怎么保证序号就是原始序号?
这是目前写的:(排序的部分删除了)
因为初学,所以并不了解其他头文件,希望只用include等简单的头文件

img

img

  • 写回答

3条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-09 21:34
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
    (讯飞星火专栏,V3.0版本,2023.10.24)


    该回答引用讯飞星火认知大模型,仅提供参考,不保证完全正确
    为了解决这个问题,我们可以使用结构体来存储椭圆的面积和原始序号。然后对结构体数组进行排序,最后输出排序后的结果。以下是修改后的代码:

    #include<iostream> using namespace std; #define PI 3.14;
    
    struct Ellipse {
        double area;
        int index;
    };
    
    double s(double a, double b) {
        double s;
        s = a * b * PI;
        return s;
    }
    
    bool compare(const Ellipse &e1, const Ellipse &e2) {
        return e1.area < e2.area;
    }
    
    int main() {
        double a[10], b[10];
        Ellipse ellipses[10];
        for (int i = 0; i < 10; i++) {
            cin >> a[i] >> b[i];
            ellipses[i].area = s(a[i], b[i]);
            ellipses[i].index = i;
        }
    
        sort(ellipses, ellipses + 10, compare);
    
        for (int i = 0; i < 10; i++) {
            cout << "第" << ellipses[i].index + 1 << "组椭圆面积为:" << ellipses[i].area << endl;
        }
    
        return 0;
    }
    

    这段代码首先定义了一个结构体Ellipse,用于存储椭圆的面积和原始序号。然后在main函数中,我们创建了一个Ellipse类型的数组ellipses,并使用循环读取输入的椭圆参数。接着,我们使用sort函数对ellipses数组进行排序,排序依据是椭圆的面积。最后,我们遍历排序后的ellipses数组,输出每个椭圆的原始序号和面积。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月10日
  • 创建了问题 12月9日