給定入棧順序為1,2...10
對每個測試輸入,輸出只有一行:
“Yes”,如果打出順序滿足“棧”的特點;
“No”,如果打出順序不滿足“棧”的特點。
輸出一個整數,即所有不同序列的總數目。
例如:
3
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
3 1 2 4 5 6 7 8 9 10
Yes
Yes
No
輸出結果全部都是NO- - 沒有找到哪裡有問題,麻煩看出來的大神了~謝謝~
代碼:
include
using namespace std;
int main() {
int T;
int n[12];
cin >> T;
while (T--) {
int r = 0,max = 0;
for (int i = 0; i < 10; i++) {
cin >> n[i];
}
for (int i = 0; i < 8; i++) {
if(max < n[i]){
max = n[i];
}
if (r = 1) break;
if (n[i+1] < max){
if (n[i+2] > n[i+1] && n[i+2] < max) {
r = 1;
}
}
}
if (r = 0) cout << "Yes\n";
else cout << "No\n";
}
system("pause");
return 0;
}
int T;
int n[12];
cin >> T;
while (T--)
{
int r = 0,max = 0;
for (int i = 0; i < 10; i++)
{
cin >> n[i];
}
for (int i = 0; i < 8; i++)
{
if(max < n[i])
{
max = n[i];
}
if (r == 1) break;//這裡錯了。你寫成了r=1
if (n[i+1] < max)
{
if (n[i+2] > n[i+1] && n[i+2] < max)
{
r = 1;
}
}
}
if (r == 0) //這裡錯了。你寫成了r=0
cout << "Yes\n";
else
cout << "No\n";
}
system("pause");
return 0;
我也是初學者,我覺得至少那兩個地方是錯了。最後,我自己的觀點,寫程序的時候海事適當加上點注釋比較好,才不會很難懂。