pascal语言 这道题 怎么编程? 高手请给讲一哈
输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数。例如:输入:11085932674输出:6对应的递增或递减子序...
输入一个由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
谢谢阿 展开
例如:
输入: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
谢谢阿 展开
2个回答
展开全部
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.
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.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询