こんにちは私は現在のタワーよりも少ないか等しいタワーの数を探していますが、このソリューションは入力(NumOfTowers)のためにうまく機能しています< = 10しかし、コードはセグメンテーションフォルトで起こっているNumOfTowers> 10のために、私は前のタワーの数が現在のタワーの数より小さいかどうかを調べる
#include <iostream>
#include <stack>
using namespace std;
int main()
{
std::stack<int> Towers; //for storing the Height of the towers
std::stack<int> TempTowers; // Temrory buffer stack
std::stack<int> CountTowers; //for storing the count of all previous
towers less than the current one
unsigned int NumTestCases,NumOfTowers,i,j,count=1,temp,temp_height;
cin>>NumTestCases;
cin>>NumOfTowers;
while(NumTestCases){
while(!Towers.empty()){
Towers.pop();
}
for(i=0;i<NumOfTowers;i++){
cin>>temp;
Towers.push(temp);
}
for(i=0;i<NumOfTowers-1;i++){
count=1;
temp_height=Towers.top();
Towers.pop();
temp=Towers.top();
while(temp<temp_height){
count++;
TempTowers.push(temp);
Towers.pop();
temp=Towers.top();
}
CountTowers.push(count);
while(!TempTowers.empty()){
temp=TempTowers.top();
TempTowers.pop();
Towers.push(temp);
}
}
NumTestCases--;
cout<<"1"<<" ";
while(!CountTowers.empty()){
cout<<CountTowers.top()<<" ";
CountTowers.pop();
}
cout<<"\n";
}
}
任意のヘルプは素晴らしいことだ、ここでの問題見ることができませんでした。
[ 'std名前空間を使用して;'悪い習慣である](HTTPS ://stackoverflow.com/q/1452721/2176813)、決して使用しないでください。 – tambre
入力と希望する出力をリストしてください。そうでなければ、私たちは遠隔地ではなく、プログラムが何をしたいのか分からないので、質問は話題にはなりません。 – tambre
デバッガを使用します。 –