回 帖 发 新 帖 刷新版面

主题:字符串的读入问题

要读入一系列数据
字符串 数字数据 在一行
读入后有问题 ``
怎样读入?

var  n:string;
     j:integer;

begin
  read(n,j);
  write(n,j);
end.

这样是错的
但我不知道怎么改 ``注意 :题目要求是n和j是一行
????
各位帮帮忙``

回复列表 (共5个回复)

沙发

N是字符数组(字符串),J是整型变量,不能同时输入,
改:

var  n:string;
     j:integer;

begin
  read(n);
  read(j);
  write(n);
  write(j);
end.

板凳

var n:string; i,j:byte; code:integer;
begin
  readln(n);
  for i:=length(n) downto 1 do if n[i]=' 'then break;
  val(copy(n,i+1,length(n)-i),j,code);
  delete(n,i,length(n)-i+1);
  writeln(n);
  write(j);
  readln;
end.

3 楼

看不懂 
  可能我水平不到吧 `

4 楼

uses crt;
var
  n:string;
  j:integer;
  x:char;
  p,code:integer;
  f:boolean;
begin
  x:=readkey;
  write(x);
  while x<>chr(13) do begin
    if x=' '
      then f:=true
      else
        if not f
          then n:=n+x
          else begin
            val(x,p,code);
            j:=j*10+p;
          end;
    x:=readkey;
    write(x);
  end;
  writeln;
  writeln('n=',n);
  writeln('j=',j);
end.

虽然比较长,但还是可以的~~

5 楼

[quote]var n:string; i,j:byte; code:integer;
begin
  readln(n);
  for i:=length(n) downto 1 do if n[i]=' 'then break;
  val(copy(n,i+1,length(n)-i),j,code);
  delete(n,i,length(n)-i+1);
  writeln(n);
  write(j);
  readln;
end.
[/quote]
这个程序输出的j不对呀!
我用瞎打的数据测试的:78tg*^R&n87t73h49 6874,
输出:
78tg*^R&n87t73h49
218

我来回复

您尚未登录,请登录后再回复。点此登录或注册