1

ユーザーがオプションを選択し、目的の番号を入力してから、何らかの操作 (この場合はビットシフト) を実行してからメニューに戻ることができるメニューシステムを持つプログラムを作成しようとしています...ただし、これをテストするとここまでのコードは出力です:

                 Main Menu    
                ---------    
1. Perform Left Bit Shift Operation (one value)
2. Perform Right Bit Shift Operation (one value)
3. Perform Binary AND Operation (two values)
4. Perform Binary OR Operation (two values)
5. Perform Binary One's Complement (~) Operation (one value)
6. Perform Binary XOR Operation (two values)
7. Quit 
1


Entered Integer: 0
Left Shifted: 0

次の 2 つの scanf ステートメントを完全にスキップし、初期化した値を出力するだけです。この問題の原因は何ですか? また、ビットとして表された整数を表示する最も簡単な方法は何ですか? showbit(int inttobit) にしたいのは、整数を受け入れてそのバイナリ表現を出力することです (32 個のプレースホルダーを使用): EX: 1234 = 0000000000000000000010011010010

#include <stdio.h>
#include <string.h>
#include <math.h>

void leftShift(int bit, int shift);
void showBits(int inttobit);

int main(void)
{
  int option;
  int value1=0,value2=0;

  while (option != 7)
    {
      printf("\n");
      printf("                Main Menu    \n ");
      printf("               ---------    \n");
      printf("1. Perform Left Bit Shift Operation (one value)\n");
      printf("2. Perform Right Bit Shift Operation (one value)\n");
      printf("3. Perform Binary AND Operation (two values)\n");
      printf("4. Perform Binary OR Operation (two values)\n");
      printf("5. Perform Binary One's Complement (~) Operation (one value)\n");
      printf("6. Perform Binary XOR Operation (two values)\n");
      printf("7. Quit \n");

      scanf("%d",&option);

      if (option == 1)
        {
          scanf("Enter a base 10 Integer: %d ", &value1);
          printf("\n");
          scanf("Enter number of places to shift bit: %d", &value2);
          printf("\n");
          leftShift(value1, value2);
        }
      else if (option == 7)
        {
        break; /* break out of loop */
        }
      else if (option < 0 || option > 9)
        {
          printf("Not an option... out of bounds\n");
        }
        }
      return(0);
}

void showBits(int inttobit)
{
  printf("\n");
  printf("Integer entered: %d\n", inttobit);
  printf("\n");
}
void leftShift(int bit, int shift)
{
  printf("Entered Integer: %d\n", bit);
  printf("Left Shifted: %d\n", shift);
}

どんな助けや指示も大歓迎です!

4

1 に答える 1