|
> すみません。次回から気をつけます。そうです、関数numの中身がどういう
> 動作がおこなっているかがわかりません…
気を付けますといっておきながら、全然気をつけていないじゃないですか。
【掲示板ご利用上の注意】を全く無視し、全文引用を行い、自分の書いたもの
と人の書いたものの区別がつかない書き方をしていることに気づきませんか?
関数 num の説明はしません。説明のほうは ここでも見てもらうことにして、
私は全く異なる方法を示します。悩んでください。
#include <stdio.h>
int num(unsigned long b)
{
#define T0(x) x,x+1
#define T1(x) T0(x),T0(x+1)
#define T2(x) T1(x),T1(x+1)
#define T3(x) T2(x),T2(x+1)
#define T4(x) T3(x),T3(x+1)
#define T5(x) T4(x),T4(x+1)
#define T6(x) T5(x),T5(x+1)
#define T7(x) T6(x),T6(x+1)
static char t[] = { T7(0) };
return t[b>>24] + t[b>>16 & 255] + t[b>>8 & 255] + t[b & 255];
}
int main(void)
{
unsigned long x;
while (printf("> "), scanf("%lx", &x) == 1)
printf(" %d\n", num(x));
return 0;
}
|