自然数が逆順に表示できません
自然数が逆順に表示できません
学校の宿題で入力した5ケタの自然数を逆順に表示する宿題が出ました。宿題の条件として、仮引き数を受け取らない関数を作らないといけません。自分で考えてみたのですが、うまく表示されません。どこが間違っているのかを指摘していただけないでしょうか?
Re: 自然数が逆順に表示できません
少なくとも、
- 未初期化の自動変数aの値を用い、未定義動作を起こしている
- せっかく入力したnumを無視している
- せっかくループで計算した値を無視している
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 自然数が逆順に表示できません
無事に解決したようなので、別解を。
もうひとつ
#include <stdio.h>
int reverse(int a)
{
int b = 0;
do b = b * 10 + a % 10; while (a /= 10);
return b;
}
int main(void)
{
int a;
while (printf("5桁の整数を入力してください。"), scanf("%d", &a) == 1)
printf("%d\n", reverse(a));
return 0;
}