|
この間は宣言を無視した投稿をしてしまってすみません・・・
問題は『コマンドライン引数として2000以下の自然数kを受け取り,kを16進数表記で表示するプログラムを書け. ただし,printf()関数を使用してはならない. fprintf()関数も使用してはならない. ちなみに,10進数の「10,11,12,13,14,15,16,17」は16進数ではそれぞれ「A,B,C,D,E,F,10,11」となる.』で、一応作ってはみたのですが、数字がうまく出力されないし、printfでやっても数字が逆に出力されてしまいます・・・どこがおかしいのでしょうか??
教えてください。
int main (int argc,char *argv[])
{
int r,x,a;
x=atoi(argv[1]);
while(x > 0)/*x/16が0でない*/
{
r = x % 16;/*16で割った余りをrに保存*/
if (r >= 0 && r <=9)
{
putchar(r);/*ここが分からん*/
}
else if (r > 9)
{
putchar('A' + r -10);
}
x=x/16;
}
return (0);
}
|