黎明和记电讯广告歌曲:pascal语言 这道题 怎么编程? 高手请给讲一哈

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 19:39:47
输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数。
例如:
输入:1 10 8 5 9 3 2 6 7 4
输出:6
对应的递增或递减子序列为:
1 10
10 8 5
5 9
9 3 2
2 6 7
7 4

谢谢阿

program test1;
const n=10;
var s,i,t,t1,sx:integer;
a:array[1..n] of integer;
begin
for i:=1 to n do begin
write(i,':');readln(a[i]);
end;
t:=1;
while t<n do begin
t1:=t+1;
if a[t1]>a[t] then sx:=1 else sx:=0;
t1:=t1+1;
while t1<=n do
if ((a[t1]>a[t1-1]) and (sx=1)) or ((a[t1]<a[t1-1]) and (sx=0)) then
t1:=t1+1
else
break;
s:=s+1;write(s,':');
for i:=t to t1-1 do write(a[i]:5);
writeln;
t:=t1-1;
end;
readln;
end.

后面的想太多了,直接分段就好了,找到一个相反的就加1