回 帖 发 新 帖 刷新版面

主题:我是新手,请教个问题!!!

var
 a:array [1..20] of integer;
 i,x,y,z:integer;
begin
  x:=0;y:=0;z:=0;
  for i:=1 to 20 do
  begin
  read(a[i]);
  case a[i] of
  a[i]>0:x:=x+1;
  a[i]=0:y:=y+1;
  a[i]<0:z:=z+1;
  end;
  end;
  writeln('zheng shu=',x,',ling=',y,',fu shu=',z);
  readln
end.
哪错了?
怎么错的?

回复列表 (共15个回复)

沙发

什么题目?

板凳

case 不能这样用的,用if吧

3 楼

var
  a:array[1..20] of integer;
  s1,s2,s3,i,j,k,l:integer;
begin 
  for i:=1 to 20 do 
    begin 
      read(k);
      if k<0 then s1:=s1+1;
      if k=0 then s2:=s2+1;
      if k>0 then s3:=s3+1;
    end; 
  writeln('fu shu:',s1);
  writeln('0:',s2);
  writeln('zheng shu:',s3);
end.

4 楼

那数组没用上啊!!!

5 楼

case 与 if 不是可以互换吗?

6 楼

case下面的那些分支条件只能是常量表达式,你那些全是布尔表达式怎么能行呢?

7 楼

数组纯粹是受你程序的影响
其实用不到

8 楼

var
  a:array[1..100] of integer;
  i,s1,s2,s3:integer;
begin 
  for i:=1 to 20 do 
    begin 
      read(a[i]);
      if a[i]<0 then s1:=s1+1;
      if a[i]=0 then s2:=s2+1;
      if a[i]>1 then s3:=s3+1;
    end;
  writeln('fu shu=',s1);
  writeln('ling=',s2);
  writeln('zheng shu=',s3);
end.

9 楼

这个程序是用数组来做的
你可以参考一下
其实用不到数组也可以做!!!

10 楼

确实好像数组放在这里没啥用处。建议将a[i]改为intTemp更好理解。

我来回复

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