読み込んだ整数値を逆順に表示 (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桁です。