gpt4 book ai didi

c++ - 使用 if else 语句的函数将数字从大到小排序

转载 作者:行者123 更新时间:2023-11-30 04:55:08 26 4
gpt4 key购买 nike

作为序言,我想说这不是家庭作业。我正在编写这段代码来练习技能和学习不同的技术。此特定代码的挑战是使用函数和 if else 语句将 3 个值返回给用户。我已经成功地实现了我认为可行的功能。但是,我的 int main() 输出一个零而不是预期的 6、12、16 答案。谁能指出我哪里出错了?

#include <iostream>
using namespace std;

int sort2(int a, int b, int c){
if (a>b && a>c){
int value1 = a;
if (b>c){
int value2 = b;
int value3 = c;
} else {
int value2 = c;
int value3 = b;
}
}
if (b>a && b>c){
int value1 = b;
if (a>c){
int value2 = a;
int value3 = c;
} else {
int value2 = c;
int value3 = a;
}
}
if (c>a && c>b){
int value1 = c;
if(a>b){
int value2 = a;
int value3 = b;
} else {
int value2 = b;
int value3 = a;
}
}
}

int main(){
int result = sort2(12,16,6);
cout<<result;
}

最佳答案

你实际上并没有从你的函数中返回任何东西。编译器可以对此发出警告(并非总是如此),提高警告级别。此外,您的函数被声明为返回一个整数。然后,例如这里:

if (b>c){
int value2 = b;
int value3 = c;
}

您声明了两个局部于 if block 的变量。这些声明没有任何效果。老实说,我能给出的最好建议是 grab a book or two .无论如何...

The challenge of this specific code is to have 3 values returned to the user using a function and if else statements only.

我知道您想练习 if else 语句和编写函数。不幸的是,仅此一项不足以完成您想要的操作,但您可以通过返回包含 3 个值的结构来使您的代码以最小的更改工作:

struct sorted_3_values {
int value1;
int value2;
int value3;
};

然后将您的功能更改为

sorted_3_values sort2(int a, int b, int c){
sorted_3_values result;
if ( ... ) {
result.value1 = ...;
result.value2 = ...;
result.value3 = ...;
}
return result;
}

然后在 main

sorted_3_values x = sort2(12,16,6);
std::cout << x.value1 << " " << x.value2 << " " << x.value3;

请注意,如果您编写这样的代码,那么您并不是真正在使用 C++。在某些时候,您应该看看容器(例如 std::vector)和算法(std::find)。

关于c++ - 使用 if else 语句的函数将数字从大到小排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com