计算式子的值:s=1+2+3+...+100(编程 pascal语言 for语句)
这是我编的:
var a,s,i:integer;
begin
s:=0;
begin
for i:=1 to 10 do;
readln(a);
a:=1+i;
s:=s+i;
end;
writeln(s:10)
end.
计算式子的值:s=1+2+3+...+100(编程 pascal语言 for语句)
答案:1 悬赏:0 手机版
解决时间 2021-08-23 01:57
- 提问者网友:鼻尖触碰
- 2021-08-22 03:13
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-08-22 04:35
program juio;
var
i:integer;
a,s:real;
begin
a:=0;
for i:=1 to 100 do
begin
s:=a+i;
a:=s;
end;
writeln(s:0:0);
readln
end.
你的程序这些地方写的不太恰当:
1、你要输出的是s的值,但是s值可能会非常大,而integer的范围是0~32000出头的整数,万一超过了范围怎么办?所以最好将s定义为real;
2、你把var和后面的一些要定义的内容写在了同一行,这样的习惯不好,万一出错了不好更正,建议写分开;
3、【a:=1+i; s:=s+i;】这个你是想运算是吧?但是应该是将s作为输出,然后呢,以a为0代入,之后再将s每次运算的值赋值给a,这样才能循环;
4、【readln(a);】代表你读取了个a,跟题目有什么关系么?你要计算的是1+..+100的值;
5、for循环是这样的格式:
For := to do
;
For := to do
Begin
;
End;
注意:这里的do后面是不能加分号‘;’的,加分号代表运算终止,但是你的循环是要带下面的条件的,单语句与多语句的写法也不一样,分号是不可以乱加的- -;
6、【S:10】你是要设场宽么?你最后得到的值肯定是整数,s定义是real,为了避免出现科学技术法,你可以这样设置【S:0:0】.前一个分号后的数字代表的是总场宽,但是当场宽满足不了值的表示时,总场宽会被突破,后一个分号是限制小数位的,因为答案是整数,则小数再多也无任何意义,只是看着很乱,于是两个都是0
写的时候仔细点,电脑不像人脑那样聪明,多个分号什么的都是不行的,编译的时候看提示错在哪,错的多了自然也就会了.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯