题44:编程输入10个正整数,然后自动按从大到小的顺序输出。
题44:编程输入10个正整数,然后自动按从大到小的顺序输出。
Input
输入只有一行,包括10整数.
Output
输出只有一行,包括10个整数。
Sample Input
1 2 3 4 5 7 6 8 9 10
Sample Output
10 9 8 7 6 5 4 3 2 1
提示:数组与排序,注意输出最后一个空格要考虑。处理方法最后一个单独输出。program ex_44;
var a:array[1..10] of integer;
i,j,t:integer;
begin
for i:=1 to 10 do read(a[i]);
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]<a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end;
for i:=1 to 9 do write(a[i],' ');
write(a[10]);
end.
题46:统计字母出现次数
输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。
Input
输入只有一行,包括若干个字符。
Output
输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。
Sample Input
abdceeef.
Sample Output
abcdef
111131
提示:注意利用字符做下标,可以让程序简单。
program ex_45;
var a:array['a'..'z'] of integer;
i,ch:char;
begin
read(ch);
for i:='a' to 'z' do a[i]:=0;
while ch<>'.' do
begin
a[ch]:=a[ch]+1;
read(ch);
end;
for i:='a' to 'z' do
if a[i]<>0 then write(i);
writeln;
for i:='a' to 'z' do
if a[i]<>0 then write(a[i]);
end.
题48:求序列中所有递增或递减子序列的个数并输出子序列
题48:求序列中所有递增或递减子序列的个数并输出子序列。
输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数。
Input
输入只有一行,包括10个整数。之间用一个空格分开。
Output
输出的第一行,包括1个整数n.后面跟着n行.
Sample Input    1 10 8 5 9 3 2 6 7 4
Sample Output
6
1 10
10 8 5
5 9
9 3 2
2 6 7
7 4
program ex_48;
var a:array[1..11] of integer;
i,t,num:integer;
f:boolean;
begin
for i:=1 to 10 do read(a[i]);
num:=0;
for i:=2 to 9 do
if (a[i]-a[i-1])*(a[i]-a[i+1])>0 then inc(num);
writeln(num+1);
i:=1;
while i<10 do
begin
f:=false;
while (a[i]>a[i+1]) and (i<10) do
begin write(a[i],' ');i:=i+1;f:=true;end;
并输出if f=true then writeln(a[i]);
f:=false;
while (a[i]<a[i+1]) and (i<10) do
begin write(a[i],' ');i:=i+1;f:=true; end;
if f=true then writeln(a[i]);
end;
end.
题49:判断是否构成回文
输入一串字符,字符个数不超过100,且以"."结束。判断它们是否构成回文。
Input 输入只有一行,包括一串字符.
Output 输出只有一行.TRUE 或者FALSE
Sample Input 12321.
Sample Output TRUE
Hint
所谓回文指从左到右和从右到左读一串字符的值是一样的,如12321,ABCBA,AA等。先读入要判断的一串字符(放入数组letter中),并记住这串字符的长度,然后首尾字符比较,并不断向中间靠拢,就可以判断出是否为回文。
因为是以“.”结束,因此还是把变量定义为字符,用数组比较合适program ex_49;
var a:array[1..100] of char;
ch:char;
i,t:integer;
f:boolean;
begin
read(ch);
t:=0;
while ch<>'.' do
begin
t:=t+1;
a[t]:=ch;
read(ch);
end;
f:=true;
for i:=1 to t div 2 do
if a[i]<>a[t-i+1] then begin f:=false;break; end;
if f=true then write('TRUE') else write('FALSE') ;
end.
参考程序二
program ex1049;
var a:array[1..100] of char;
i,t:integer;
begin
t:=1; read(a[1]);
while a[t]<>'.' do
begin
t:=t+1;
read(a[t]);
end;
t:=t-1;
for i:=1 to t div 2 do
if a[i]<> a[t-i+1] then begin write('FALSE');exit; end;
if t<>0 then write('TRUE') else write('FALSE');
end.
题1811:语文成绩
试题描述
给出N(5 <= N <= 150)个人的语文成绩,求N个人的语文总分和平均分,并按成绩高低排序后输出。【输入描述】
第1行:一个整数N。
第2行:空格隔开的N个整数,表示N个人的语文成绩。
【输出描述】
三行。
第1行:一个整数,为N个人的总分。
第2行:N个人的语文平均分,保留两位小数。
第3行:N个空格隔开的整数,为从高到低输出的N个人的成绩。
【输入样例】
5
72 98 95 81 86
【输出样例】
432
86.40
98 95 86 81 72
program zf_pjf;
var n,s,i,j,t:integer;
a:array[1..150] of integer;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。