読み込んだ整数値を逆順に表示 (do文)
明解C言語 入門編 > 4. プログラムの流れの繰り返し >
読み込んだ整数値を逆順に表示 (do文)
C
#include <stdio.h>
int main(int argc, char* argv[])
{
int no, dig;do
{
printf("正の整数を入力してください:");
scanf("%d", &no);if (no < 0)
puts("\a負の数を入力しないでください。");} while (no < 0);
printf("その数を逆から読むと");
dig = 0;
do
{
printf("%d", no % 10);
no = no / 10;
dig++;
} while (no > 0);
puts("です。");
printf("その数は%d桁です。\n", dig);return 0;
}
実行結果
R:\>lesson025\project1.exe
正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。
Delphi
program Project1;{$APPTYPE CONSOLE}
uses
SysUtils;
var
no, dig: Integer;
begin
repeat
write('正の整数を入力してください:');
read(no);if (no < 0) then
writeln(#7'負の数を入力しないでください。')
until no >= 0;write('その数を逆から読むと');
dig := 0;
repeat
write(format('%d', [no mod 10]));
no := no div 10;
inc(dig);
until no <= 0;writeln('です。');
writeln(format('その数は%d桁です。', [dig]));
end.
実行結果
S:\>lesson025\project1.exe
正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。
Perl
do { print "正の整数を入力してください:"; chomp($no = <STDIN>); print "\a負の数を入力しないでください。\n" if ($no < 0); } while ($no < 0); print "その数を逆から読むと"; $dig = 0; do { printf("%d", int($no % 10)); $no = int($no / 10); $dig++; } while ($no > 0); print "です。\n"; printf("その数は%d桁です。\n", $dig); print "\n"; do { print "正の整数を入力してください:"; chomp($no = <STDIN>); print "\a負の数を入力しないでください。\n" unless ($no >= 0); } until ($no >= 0); print "その数を逆から読むと"; $dig = 0; do { printf("%d", int($no % 10)); $no = int($no / 10); $dig++; } until ($no <= 0); print "です。\n"; printf("その数は%d桁です。\n", $dig);
実行結果
L:\>perl lesson_04_025.pl
正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。
Ruby
begin print "正の整数を入力してください:" no = STDIN.gets.chomp.to_i print "\a負の数を入力しないでください。\n" if (no < 0) end while (no < 0) print "その数を逆から読むと" dig = 0 begin printf("%d", no % 10) no = no / 10 dig += 1 end while (no > 0) puts "です。" printf("その数は%d桁です。\n", dig) puts "" begin print "正の整数を入力してください:" no = STDIN.gets.chomp.to_i print "\a負の数を入力しないでください。\n" if (no < 0) end until (no >= 0) print "その数を逆から読むと" dig = 0 begin printf("%d", no % 10) no = no / 10 dig += 1 end until (no <= 0) puts "です。" printf("その数は%d桁です。\n", dig)
実行結果
L:\>ruby l:\lesson_04_025.rb
正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。正の整数を入力してください:-17
負の数を入力しないでください。
正の整数を入力してください:1963
その数を逆から読むと3691です。
その数は4桁です。