/* Part8 演習問題3 */ /* 関数printfを関数putcharで代替 */ #include <stdio.h> int main(void) { int x ; int num,d ; char buf[10] ; int ns ; /* 変換後の文字数 */ int i ; printf("正の整数(9桁以下): ") ; scanf("%d",&x) ; if((x<0)||(x>999999999)) { printf("入力データが誤りです。\n") ; return(1) ; } num=x ; /* 整数の1桁を文字に変換 */ for(ns=0;ns<10;ns++) { d=num%10 ; num=num/10 ; buf[ns]=(char)(d+48) ; if(num==0) break ; } /* 整数の桁は逆順 */ printf("入力された整数は ") ; for(i=ns;i>=0;i--) { putchar(buf[i]) ; } printf(" です。\n") ; return(0) ; } |
% gcc -Wall part8-3.c % ./a.out 正の整数(9桁以下): -123 入力データが誤りです。 % ./a.out 正の整数(9桁以下): 1234567890 入力データが誤りです。 % ./a.out 正の整数(9桁以下): 12345 入力された整数は 12345 です。 % ./a.out 正の整数(9桁以下): 0 入力された整数は 0 です。 % ./a.out 正の整数(9桁以下): 987654321 入力された整数は 987654321 です。 |