• ベストアンサー

4の倍数を論理演算で表す。。

/*Prog32.cキーボードから整数型変数aへデータを入力し、aの値が4の倍数のときは“4の倍数です”と表示し、そうでないときは、“4の倍数ではありません”と表示する。ただし、整数データのビット数はわからないものとし、計算にはビットごとの論理演算のみを用いる。*/ #include <stdio.h> int main(void) { int a; printf("整数を入力して下さい! "); scanf("%d", &a); (a % 4 ) ? printf("4の倍数ではありません。\n", a) :printf("4の倍数です。\n", a); return(0); } 4の倍数を論理演算で表す方法がわかりません。。 自分では上記のように算術を使うやりかたしかわかりませんでした。 よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#include <stdio.h> int main(void) { int a; printf("整数を入力して下さい! "); scanf("%d", &a); if(a%4==0){ printf("%dは4の倍数です。\n", a); } else{ printf("%dは4の倍数ではないです。\n", a); } return(0); } のまちがいか。

その他の回答 (2)

  • floor101
  • ベストアンサー率28% (2/7)
回答No.3

4の倍数は、2進数で表すと、下位2ビットが0です。 ですから、if文の条件式を if ((!(a & 3)) 4の倍数; else 4の倍数ではない; とすればいいと思います。

回答No.1

#include <stdio.h> int main(void) { int a; printf("整数を入力して下さい! "); scanf("%d", &a); if(a%==0){ printf("%dは4の倍数です。\n", a); } else{ printf("%dは4の倍数ではないです。\n", a); } return(0); } でいいんじゃないの?このままこぴぺしても全角の空白がどっかにはいっているからそのまま通らないかも。

関連するQ&A

専門家に質問してみよう