1樓:匿名使用者
樓上的回答是對的。
首先讀入字串st,接著使用for迴圈(從一到字串的長度,length是求字串的長度),st[i]是指當前位置的字元,val是把字串轉化為一個數字(一個字元也可以,無法轉換值為0)。然後用s把a累加,最後輸出。
還有的方法如ascii碼:
varch:char; t:longint;
begin
read(ch);
while ord(ch)<>13 do begin inc(t,ord(ch)-48); read(ch); end;
end.
首先讀入字元ch,如果ch的ascii碼不等於13(意思是沒有按下回車),那麼就累加,最後輸出。0的ascii碼是48,1的ascii碼是49,2的ascii碼是50,依此類推。
2樓:匿名使用者
var s,i,a:longint;
st:string;
begin
readln(st);
for i:=1 to length(st) dobegin
val(st[i],a);
s:=s+a;
end;
writeln(s);
end.
如何用free pascal編這樣一個程式: 輸入一個百位數,輸出它的個位、百位、十位 。
3樓:
program xx;
var a,b,c,e:longint;
begin
read(e);
writeln("b",(e div 100) mod 10);
writeln("s",(e div 10)mod 10);
writeln("g",e mod 10);
end.
吶~很不錯了,用長整型,任你讀數,它卻始終輸出個十百位,啊哈~防超出~
4樓:地電風
varn:integer;
begin
readln(n);
write(n div 100,' ',n div 10 mod 10,' ',n mod 10);
end.
5樓:
program no1;
varn:longint;
begin
readln(n);
writeln(n mod 10);
writeln(n div 100);
writeln((n div 10) mod 10);
end.
輸入一個少於10位的正整數,將其每一位上的數字依次輸出(高位到低位)輸出時 中間加逗號
6樓:匿名使用者
這題的技巧是,用字串存放這個正整數。
具體的演算法如下:
讀取正整數,存放在字串s中;
一個迴圈變數從1到(s的長度-1)開始迴圈,先輸出s的第 i 位,再輸出一個逗號 ' ,' ;
最後,輸出s的最後一位。
由於不知道lz所用的語言,下面用pascal和c++作為例子:
pascal
var s:string;
i:integer;
begin
readln(s);
for i:=1 to length(s)-1 dowrite(s[i],',');
writeln(s[i+1]);
end.
c++#include
#include
using namespace std;
int main()
{ char s[10];
int i;
cin>>s;
for (i=0;i
free pascal:輸入十個正整數,然後把這十個數按由小到大的順序輸出。(選擇排序)
7樓:匿名使用者
vara:array[1..10]of longint;
i,j,t:longint;
begin
for i:=1 to 10 do
readln(a[i]);
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]>a[i] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to 10 do
write(a[i],' ');
writeln;
end.
第一遍每次for都找出第i小的整數,儲存在a[i]陣列裡,最後按順序輸出。
8樓:匿名使用者
program ex;
vara:array[1..10] of integer;
i,j,t:integer;
begin
for i:=1 to 10 do read(a[i]);
for i:=1 to 10 do
for j:=i+1 to 10 do
if a[i]>a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to 10 do write(a[i],' ');
end.
9樓:
for i:=1 to n do readln(a[i]);
write('array:');
for i:=1 to n do write(a[i]:3);
readln;
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
begin
if a[k]>a[j] then k:=j;
if i<>j then
begin
temp:=a[i];
a[i]:=a[k];
a[k]:=temp;
end;
end;
end;
write('after sort:');
for i:=1 to n do write(a[i]:3);
readln;
free pascal問題 任意輸入一個四位數,輸出的結果是其各個數位上的數字之和
10樓:
用字元陣列儲存這n個數 再用ascii碼將字元型別的數字轉換成整數數字
再加起來即可;
vara: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.
如果不會用字元陣列和迴圈 可以用笨辦法;
vara,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.
11樓:匿名使用者
var i,j,s,n:longint;
begin
readln(n);
for i:=1 to 4 do begins:=n mod 10;
n:=n div 10;
end;
writeln(s);
end.
相當於每次把n的個位加到s裡面,然後把n的個位截掉。
12樓:匿名使用者
program add;
vara,b,c,d,e;
begin
read(a,b,c,d);
e:=a+b+c+d;
writeln(e);en.
用free pascal將一個兩位數的個位和十位交換
13樓:匿名使用者
vara:integer;
begin
readln(a);
a:=a div 10+(a mod 10)*10;
writeln(a);
end.
如何用c語言輸入123輸出,如何用C語言輸入123,輸出
n 100因為n是整形,所以輸出是百位的數字n 10是取餘,正好是個位的數字 b是中間的數,道理和a是一樣的。再把三個數反過來輸出一遍就行了,本題中是重新組成一個三位數。是這樣的。int n,a,b,c 定義了4個整型變數,其中n為即將輸入的數,a為所輸入數字的百位數,b 為所輸 入數字的十位數,c...
如何用C語言編寫程式,輸入任意輸入正整數,反序輸出每
include int main while n 10 printf n return 0 include include void main for int j 0 j include using namespace std void print int n cout 入你 想轉換的數 n ret...
如何用搜狗輸入法打出圖形,怎麼用 搜狗輸入法打出特殊符號 偏旁
切換出來,在右下角搜狗的小橫長條上右擊,滑鼠移到 軟體盤 s 最下面 特殊符號 怎麼用 搜狗輸入法打出特殊符號 偏旁 氵san 宀bao 辶zou 屮cao 糹jiao 攵fan 灬huo 礻shi 丨shu 丿 pie 丶dian 匚fang 刂li 冂tong 亻 dan 勹bao 亠wen 冫...