计算式子的值:s=1+2+3+...+100(编程 pascal语言 for语句)

这是我编的:vara,s,i:integer;begins:=0;beginfori:=1to10do;readln(a);a:=1+i;s:=s+i;end;write... 这是我编的:
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.
展开
 我来答
FanRenaiii
2011-01-22 · TA获得超过258个赞
知道答主
回答量:96
采纳率:0%
帮助的人:129万
展开全部
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

写的时候仔细点,电脑不像人脑那样聪明,多个分号什么的都是不行的,编译的时候看提示错在哪,错的多了自然也就会了。
lbhgf
2012-11-11
知道答主
回答量:12
采纳率:0%
帮助的人:9113
展开全部
首先,这是一个等差数列
var s:real;
begin
s:=100*99*0.5+100;
write(s);
end.
但很明显它超时
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moosewoler
2011-01-21 · TA获得超过828个赞
知道小有建树答主
回答量:203
采纳率:75%
帮助的人:110万
展开全部
var s,i:integer;
begin
s:=0;
for i:=1 to 100 do
s:=s+i;
writeln(s:10)
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whdbsa
2011-01-22 · TA获得超过828个赞
知道小有建树答主
回答量:687
采纳率:0%
帮助的人:544万
展开全部
program kjk;
var
a,b:integer;
sum:integer;
begin
writeln('please enter the number a,b:');
readln(a,b);
sum:=a+b;
writeln(sum);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佟佳兴
2011-01-22 · TA获得超过225个赞
知道答主
回答量:20
采纳率:0%
帮助的人:8.2万
展开全部
var i,j:integer;
begin
for i:= 1 to 100 do
j:=j+i
writeln(j);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式