贝贝的单词游戏,free pascal题目,菜鸟求助
【问题描述】今天英语课,王老师为了复习以前学过的单词,提高学生的兴趣,想了一个主意:1.把全班分为n个小组,每个小组写一个学过的单词(均为小写)和一个整数k;2.每个小组...
【问题描述】今天英语课,王老师为了复习以前学过的单词,提高学生的兴趣,想了一个主意:
1.把全班分为n个小组,每个小组写一个学过的单词(均为小写)和一个整数k;
2.每个小组根据该单词中的每个字母的字典顺序上推或下推k个位置,经过变换后得到一个新单词。推移规则是如果k为正数则下推,否则上推,当推移超越边界时回到另一端继续推移。
3.每个小组把得到的新单词和整数k展示到黑板上。
4.王老师紧接着给出一个字母,规定哪个小组最快完成以下任务则获胜:统计出该字母在所有小组开始写出的单词中出现的次数。
你能编程帮贝贝所在的小组获胜吗?
【输入格式】
输入文件共n+2行;
第一行为王老师给出的一个字母;
第二行位数字n(2≤n≤30),表示全班分为n个小组;
接着是n行,每行为每个小组得到的新单词(2≤单次长度≤14),然后一个空格,后接一个整数k(-1000≤k≤1000)。
【输出格式】
输出文件只有一个数,为给定字母在所有小组开始写的单词中出现的次数。
谢谢啊,急需啊! 展开
1.把全班分为n个小组,每个小组写一个学过的单词(均为小写)和一个整数k;
2.每个小组根据该单词中的每个字母的字典顺序上推或下推k个位置,经过变换后得到一个新单词。推移规则是如果k为正数则下推,否则上推,当推移超越边界时回到另一端继续推移。
3.每个小组把得到的新单词和整数k展示到黑板上。
4.王老师紧接着给出一个字母,规定哪个小组最快完成以下任务则获胜:统计出该字母在所有小组开始写出的单词中出现的次数。
你能编程帮贝贝所在的小组获胜吗?
【输入格式】
输入文件共n+2行;
第一行为王老师给出的一个字母;
第二行位数字n(2≤n≤30),表示全班分为n个小组;
接着是n行,每行为每个小组得到的新单词(2≤单次长度≤14),然后一个空格,后接一个整数k(-1000≤k≤1000)。
【输出格式】
输出文件只有一个数,为给定字母在所有小组开始写的单词中出现的次数。
谢谢啊,急需啊! 展开
展开全部
参见我以前回答的问题(我回答了你一次)你没给数据
不知道对不对
你看看思路吧
begin
if n<0 then exit(-1);
if n>0 then exit(1);
exit(0);
end;
function get(k:longint;var ch:char):char;
var i:longint;
begin
case sgn(k) of
1: for i:=0 to k do
case ch of
'z': ch:='a';
else
ch:=succ(ch);
end;
-1: for i:=0 downto k do
case ch of
'a': ch:='z';
else
ch:=pred(ch);
end;
end;
exit(ch);
end;
function read_word():string;
var ch:char;
s:string;
begin
read(ch);
while ch<>' ' do
begin
s:=s+ch;
read(ch);
end;
end;
begin
readln(standard);
readln(n);
for i:=1 to n do
begin
s[i]:=read_word();
readln(k);
for j:=1 to length(s[i]) do
new_s:=new_s+s[i][j];
end;
k:=0;
for j:=1 to length(new_s) do
if new_s[j]=standard then inc(k);
writeln(k);
end.
不知道对不对
你看看思路吧
begin
if n<0 then exit(-1);
if n>0 then exit(1);
exit(0);
end;
function get(k:longint;var ch:char):char;
var i:longint;
begin
case sgn(k) of
1: for i:=0 to k do
case ch of
'z': ch:='a';
else
ch:=succ(ch);
end;
-1: for i:=0 downto k do
case ch of
'a': ch:='z';
else
ch:=pred(ch);
end;
end;
exit(ch);
end;
function read_word():string;
var ch:char;
s:string;
begin
read(ch);
while ch<>' ' do
begin
s:=s+ch;
read(ch);
end;
end;
begin
readln(standard);
readln(n);
for i:=1 to n do
begin
s[i]:=read_word();
readln(k);
for j:=1 to length(s[i]) do
new_s:=new_s+s[i][j];
end;
k:=0;
for j:=1 to length(new_s) do
if new_s[j]=standard then inc(k);
writeln(k);
end.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询