free pascal高手题:输入一个数写出各个位的和 注意:是不管输入几位数,都可以输出他的和

好的千分赏要用while语句哦... 好的千分赏
要用while语句哦
展开
 我来答
zj_lzoi_lyc
2011-12-16 · 超过14用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:35.4万
展开全部
楼上的太复杂了,而且这个也不算高手题吧……
给个简单的
program sum;
var
a:longint; //存储输入的数
s:longint; //存储数字和的结果
begin
readln(a); //输入
s:=0; //初始化
while a>0 do //a>0时不断地做
begin
s:=s+a mod 10; //把a的个位加到s里面
a:=a div 10; //把a的个位去掉
end;
writeln(s); //输出
end.
小朋友好好体会一下吧!我相信你会进步的!
peter987662
2011-12-16 · TA获得超过1330个赞
知道小有建树答主
回答量:1117
采纳率:0%
帮助的人:1197万
展开全部
function jia(s1,s2:ansistring):ansistring;
var i,j,l1,l2:longint;
a,b:array[0..10000] of longint;
o:ansistring;
begin
jia:='';
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
l1:=length(s1);
l2:=length(s2);
for i:=1 to l1 do
a[l1-i+1]:=ord(s1[i])-ord('0');
for i:=1 to l2 do
b[l2-i+1]:=ord(s2[i])-ord('0');
for i:=1 to l1 do
begin
a[i]:=a[i]+b[i];
if a[i]>=10 then
begin
inc(a[i+1]);
a[i]:=a[i]-10;
end;
end;
if a[l1+1]>0 then inc(l1);
for i:=1 to l1 do
begin
str(a[i],o);
jia:=o+jia;
end;
end;
var ii,jj:integer;
ss,si,sj:ansistring;
begin
readln(ss);
ii=length(ss)-1;
si=ss[ii+1];
while ii >=1 do
begin
si=jia(si,ss[ii]);
ii=ii-1;
end;
writeln(si);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunyibo199541
2011-12-16 · TA获得超过114个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:106万
展开全部
program ui (input,output);
var
s:string;
i,j,k:longint;
begin
readln(s);
i:=1;
k:=0;
while i<=length(s) do
begin
k:=k+ord(s[i])-48;
i:=i+1;
end;
writeln(k);
end.
追问
string是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
846492130
2011-12-16 · TA获得超过287个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:338万
展开全部
什么语言的啊
追问
pascal语言,用while语句做
追答
pascal?  没听说过 
告诉你一个流程吧
可以先将 这个数字转换成字符串 然后 获得字符串的每个字符 然后把 每个字符 转换成int 以后 加在一起就可以了 循环的条件是 这个数字转换成字符串以后的长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式