gpt4 book ai didi

c++ - 对数组排序后,为什么我看到的是地址而不是值?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:09 25 4
gpt4 key购买 nike

我的代码中有一个小问题。我正在尝试计算输入中的最大数字,我想通过使用 std::sort() 来尝试一下。现在我有这段代码,它将最大数字的地址而不是最大数字本身打印到输出中:

#include<bits/stdc++.h>
using namespace std;

int main(){

int arr[3];
for(int i=0;i<3;++i){
int x;
cin >> x;
arr[x];
}
sort(arr, arr + 3, greater<int>());

cout << arr[0] << endl;
}

我在这里做错了什么?我是否错误地调用了 sort

最佳答案

您对 sort 的调用是正确的,但您对数组的初始化是错误的。你在写

for(int i=0;i<3;++i){
int x;
cin>>x;
arr[x];
}

最后一条语句 arr[x]; 无效。您解释为正在打印的地址是一个垃圾值,恰好恰好位于数组的第一个位置。

我想你是想写

arr[i] = x;

一旦你这样做,一切都应该开始工作。

更好的是,尝试这样写:

for(int i=0;i<3;++i){
cin >> arr[i];
}

展望 future ,确保将编译器的警告级别调到最高。我很确定大多数编译器会检测到您的语句没有效果,这会让您找到问题的根本原因。

希望这对您有所帮助!

关于c++ - 对数组排序后,为什么我看到的是地址而不是值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25878040/

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