给定入栈顺序,判断出栈顺序

DoraAmonFF 2013-09-27 08:56:49
给定入栈顺序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 <iostream>
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;
}
...全文
530 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianHao-binn 2013-10-30
  • 打赏
  • 举报
回复
if的判等条件都写不对,算法我刚才看了没问题 把你的代码的格式稍微改了改,你给的代码实在是看着难受

#include <iostream>
using namespace std;

int main() {
	int T;
	int n[12];
	int i;
	cin >> T;
	while (T--) {
		int r = 0,max = 0;
		for (i = 0; i < 10; i++) 
			cin >> n[i];
    for (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;
} 
xiejin90314 2013-10-30
  • 打赏
  • 举报
回复
数据机构基础题目。。楼主蛋疼了
穆林幕 2013-10-29
  • 打赏
  • 举报
回复
r 是什么?
bigwangdi 2013-10-04
  • 打赏
  • 举报
回复
引用 2 楼 alias_0715 的回复:
我不会用bool
google it,学习一下不就会了
DoraAmonFF 2013-09-29
  • 打赏
  • 举报
回复
我不会用bool
那闯 2013-09-27
  • 打赏
  • 举报
回复
if (r = 0)

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧