1

これが混乱している場合は申し訳ありません....これまでのところ、10進数を2進数に変換しています。これを行っている間、私はバイナリ表現の数字をint配列に格納します。

例:番号4の場合(これは以下のdec2binで行われます)

    temp[0] = 1
    temp[1] = 0
    temp[2] = 0

この配列を、複数の「temp」配列を含む別の配列(BinaryArrayなど)に格納したいと思います。

BinaryArrayでmainを宣言し、dec2binに渡して、現在の一時配列のコピーを保存したいと思います。次に、次の番号に移動します。

ポインタとこれに必要のないものを理解するのに問題があります。誰かがmainで必要な配列を宣言する方法と、dec2binからそれに追加する方法を手伝ってくれるなら。

ありがとう!主要:

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

    int main()
    {      

      void dec2bin(int term, int size);

      int size, mincount;
      int * ptr;
      int x;
      x=0;

      scanf("%d %d", &size, &mincount);
      printf("Variables: %d\n", size);
      printf("Count of minterms: %d\n", mincount);

      int input[mincount+1];

      while(x < mincount){
        scanf("%d", &input[x]);
        x++;
      }
      x = 0;

      while(x < mincount){
        dec2bin(input[x], size);

Dec2bin:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define SIZE 32

    void
    dec2bin(int term,int size){
      int i, j, temp[size], remain, quotient;
      quotient = term;
      i = size-1;
      // set all temp to 0
      for(j=size-1;j>=0; j--){
        temp[j] = 0;
        }

      //change to binary
      while(quotient != 0){
        remain = quotient % 2;
        quotient/=2;
        if(remain != 0){
          temp[i] = 1;
         } else {
          temp[i] = 0;
         }
         i--;
        }

        //print array
        for(i=0; i<size; i++)
          printf("%d", temp[i]);

        printf("\n");
    }
4

2 に答える 2

6

あなたが何をしたいのか理解できたかどうかはわかりませんが、「intの配列の配列」を作成したいようです。例:

#include <stdio.h>
#include <stdlib.h>

int main(){
    int i;
    int n;
    int **myArray;

    n = 10;
    myArray = (int**)malloc(n*sizeof(int*));

    //Usage example
    int myIntArray[] = {1,2,3,4,5};

    myArray[0] = myIntArray;

    //This call should print "4"
    printf("%d\n",myArray[0][3]);

    return;
}   

このようにして、各要素がintの配列である配列(myArray)を作成します。

于 2012-09-18T21:50:26.463 に答える
0

「すべての温度を0に設定するには、memset()を使用します。整数を2進数で表示したいとします。論理積を0x80000000で実行し、変数を左シフトすることで、各ビットを確認できます。大まかな例を次に示します。

int x = 27;
string bin;

for ( int index = 0; index < sizeof(int) * 8; ++index ) {
if ( x & 0x80000000 ) {
    bin += '1';
} else {
    bin += '0';
}
x = x << 1;
}
cout << bin << endl;

整数のバイナリ表現をintの配列に格納するのはなぜですか?私はこれをする理由を考えることができません。

于 2012-09-18T21:21:14.167 に答える