これは比較的基本的ですが、C++で配列をソートする関数を記述しようとしています。通常の方法ではやりたくありません。ループで最大の配列を見つけ出し、 "max"として保存し、maxを別の配列の現在の値として保存してから、値をゼロに変更して、ループが次回実行されるまでに前回のmax数字はもう最高値にはならず、次の最高位を取ることができますが、なんらかの理由でこれは機能しません。どうしたんだ?C++の関数で配列をソート
#include <iostream>
using namespace std;
void mysort(int arr[10]){
int max = 0;
int high[10];
int count;
for (int j=0; j<10; ++j){
for(int i=0; i<10; ++i){
if (arr[i]> max){
max= arr[i];
count=i;
}
}
cout<<"the "<< count+1<<" largest is: "<< max<<"\n";
high[j]= max;
*arr[count]= 0;
}
}
main(){
int pass[10] = {1,2,3,4,5,6,7,8,9,0};
mysort(pass);
}
あなたのC++学習リソースは非常に古くなっています。 'int main()'の 'int'はオプションではありません。 'void mysort'の' void'と同じように。 – StoryTeller
"doesnt work"の意味は何ですか? 0をプレースホルダとして使用しているときは、入力に0を設定することはできません。そうでないと、プラクソルと0の入力を区別できません。また、<0は動作しません。なぜなら、0を最大値として見つけるからです。 – user463035818
その行は、* arr [count] = 0; 'と書いてあります。 – informaticienzero