Free Pascal问题 任意输入一个四位数,输出的结果是其各个数位上的数字之和

 我来答
颱風來襲
2010-09-10
知道答主
回答量:17
采纳率:0%
帮助的人:15.9万
展开全部
var n,i,t:integer;
begin
write('input the number:');
readln(n);
if (n<1000)or(n>9999) then writeln('input error!');
t:=0;
for i:=1 to 4 do
begin
t:=t+n mod 10;
n:=n div 10;
end;
writeln('sum=',t);
readln
end.
这个和楼上差不多,只是运行起来美观点,而且可以报错(输入不是4位数的时候),就是报错了仍然会计算,为了简洁,就没填程序了,需要进一步帮助请给我留言
百度网友117b1db52
2010-09-09 · TA获得超过134个赞
知道小有建树答主
回答量:99
采纳率:100%
帮助的人:64.9万
展开全部
用字符数组存储这N个数 再用ASCII码将字符类型的数字转换成整数数字
再加起来即可;
var
a:array[1..10000] of char;
i,s,n:longint;

begin

for i:=1 to 4 do
read(a[i]);
s:=0;
for i:=1 to 4 do
s:=s+(ord(a[i])-48);
writeln(s);
end.

如果不会用字符数组和循环 可以用笨办法;
var
a,s,c:longint;
begin
readln(a);
s:=0;
c:=a mod 10;
a:=a div 10;
s:=s+c;

c:=a mod 10;
a:=a div 10;
s:=s+c;

c:=a mod 10;
a:=a div 10;
s:=s+c;

c:=a mod 10;
a:=a div 10;
s:=s+c;

writeln(s);
end.

参考资料: http://zhidao.baidu.com/question/167497888.html

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hds328705509
2010-09-09 · TA获得超过148个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:120万
展开全部
var i,j,s,n:longint;
begin
readln(n);
for i:=1 to 4 do begin
s:=n mod 10;
n:=n div 10;
end;
writeln(s);
end.
相当于每次把N的个位加到S里面,然后把N的个位截掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guojiawei92
2010-09-09
知道答主
回答量:12
采纳率:0%
帮助的人:7万
展开全部
program add;
var
a,b,c,d,e;
begin
read(a,b,c,d);
e:=a+b+c+d;
writeln(e);
en.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式