超简单PASCAL 程序问题
你的程序完全正确,没有错误,我在TURBO PASCAL下编译和运行都成功。
如果你是在DELPHI下运行程序,需要在最前面添加下面一行:
{$apptype console$}
其它的WINDOWS下PASCAL环境可能有类似需求。
LZ的错误有两处。
第一处:
if(b=100)then c:=1000*a+b else
if(b=10)then c:=100*a+b else
if(b=1)then c:=10*a+b
write(c);
这个地方,if(b=1)then c:=10*a+b最后要加上分号,即 if(b=1)then c:=10*a+b;
第二处,请LZ注意自己语句的逻辑关系,
if(a0) then
begin
if(b>999)
then write('cuowu');
end
这一句你用一个BEGIN END结束了 if(b>999) then write('cuowu'); 的逻辑关系,所以,下面紧接着的ELSE表示不满足条件if(a0)。这样的话,也就说你的程序中主体部分中只有1个IF语句,但你在程序的结尾 else write('cuowu');请LZ自己看看,这个ELSE是没有IF语句在前面作为条件语句的,所以最后这句else write('cuowu');是多余的。
解决的办法:LZ要么把最后一句ELSE WRITE直接删除,要么就把这句
if(a0) then
begin
if(b>999)
then write('cuowu');
end
改成
if(a0) then
if(b>999) then write('cuowu')
else
这两种改法都可以,当然,实际运行时候的结果是完全不同的,因为逻辑顺序都不同
i:integer;
begin
readln(s);
writeln;
for i:=1 to length(s) do
if s[i] in ['a'..'d'] then write(ord(s[i])-ord('a')+1) else
if s[i] in ['A'..'D'] then write(ord(s[i])-ord('A')+1) else
write(5);
end.
var
c:char;
num:integer;
begin
while not eoln do
begin
read(ch);
ch:=upcase(ch);
num:=ord(ch)-ord('A')+1;
if (num>5)or(num<=0) then num:=5;
write(num);
end;
end.
program exp;
var s:string; i:integer;
begin
readln(s);
for i:=1 to len(s) do
if (s[i]>='a')and(s[i]<='d')
then s[i]:=chr(ord(s[i])-ord('a')+1)
else if (s[i]>='A')and(s[i]<='D')
then s[i]:=chr(ord(s[i])-ord('A')+1)
else s[i]:='5';
writeln(s);
end.
长兴诞吡诺:[答案] 用function做的求30000以内的所有"亲和数": var n,i,j,k:longint; function yinzihe(n:longint):longint; var s,i,j:longint; begin s:=1; j:=trunc(sqrt(n)); for i:=2 to j-1 do if n mod i=0 then inc(s,i+n div i); if j*j=n then inc(s,j); yinzihe:=s end; begin for i:=2 to 30000 ...
澧县18917856470: 几道简单的Pascal编程题 - ?
长兴诞吡诺: 1.var a,b:integer; begin readln(a,b); writeln(a+b); end;2.var s:real; begins:=(8+12)*9/2; writeln(s:2:2) end.3.var a:integer; ge,bai,shi:integer; beginreadln(a); ge:=a mod 100; bai:=a div 100; shi:=a-ge-bai*100; weiteln(ge,bai,shi); end.4.var a:array[1.....
澧县18917856470: 简单的Pascal编程题?
长兴诞吡诺: var PI:double ; R:double ; begin PI:=3.1415926; readln(R); writeln(PI*R*R); readln; end.
澧县18917856470: 非常简单的PASCAL问题?
长兴诞吡诺: 字符串比较大小 要一位一位比,只要有一位不同 就是不相同~简单写下 lena=length(a);lenb=length (b);flag=1;if (lena=lenb) 字符长度肯定要一样啊,不然怎么相等beginfor i:=1 to lena doif (a[i]<>b[i]) 只要有一位不相等 ,字符串a,b就是补相等了begin flag=0; break;end;end else flag=0;if (flag=1) writeln('yes')else writeln('no'); LZ 明白了吗~~ 不管怎么样版本都有问题....汗...都没办法 分成一行一行,不好意思了...
澧县18917856470: 一道pascal简单问题 - ?
长兴诞吡诺: var n:byte; procedure mid (a,b,c,d:byte); begin //a.c控制分子,b.c控制分母if b+d>n then exit; //分母大于n跳出mid(a,b,a+c,b+d); //递归调用,因为a+c的初值小...
澧县18917856470: 程序错误,超简单?
长兴诞吡诺: 你并没有把所谓的“无法运行”说清楚,所以即使是“超简单”也没法回答. 你这个提示的意思是编译器参数非法,可能是编译器不接受 -Opentium3这个选项,你打开选项设置,找到编译器命令行设置那里,去掉CPU Pentium3这个选项在试试看,如有必要,我可以给你远程操作.
澧县18917856470: Pascal简单题,求解 - ?
长兴诞吡诺: read(score);if score > 85 then writeln('very good')elseif score> 65 then writeln('good')else writeln('no good')end;
澧县18917856470: 一道简单的pascal编译问题?
长兴诞吡诺: var S: Double; begin S := (8 + 12) * 9 / 2; Writeln(S: 2: 2); Readln; end. 望采纳
澧县18917856470: 一个简单的PASCAL编程问题?
长兴诞吡诺: 这个就是穷举法,把每个情况都列出来,然后判断;如果 c mod a[i]<>b[i],剩下得猪数不等 c:=c+d;{当前猜解数加上余数,即猜有去掉余数有多少母猪+剩余母猪.即母猪数} d:=d*a[i];{跟本题没关,懒得看} BY:丁 应该对
澧县18917856470: Pascal简单问题,急?
长兴诞吡诺: var a,b,c,d,k:longint; begin for a:=1to 9do for b:=0to 9do for c:=0to 9do for d:=1to 9do begin k:=a*1000+b*100+c*10+d; if k*4=d*1000+c*100+b*10+a then writeln(a,b,c,d); end; end. 答案是2178吧 枚举千位、百位、十位、个位 组成一个数字 把这个数乘以4 看和它倒过来是不是相同的