2017-02-20 5 views
0

4x4配列の全行に16進値を割り当てるCプログラムをどのように作成できますか?各行には1つの値があります(0x00,0xff、0x55、0xff)。次に、私ができるすべての要素を合計する必要があります。配列の行に値を代入する - Cプログラミング

#include "msp430g2553.h" 

int main(void) 
{ 
    WDTCTL = WDTPW + WDTHOLD;  // Stop watchdog timer 
//-------------------------------------------------------------------------- 
//char type is one byte; int type is two bytes; volatile to prevent optimization 
//------------------------------------------------------------------------------ 

volatile unsigned int i=0, j=0, sum=0; // sum is the sum of the indices 
int Zeroes = 0x00, Ones = 0xff, Odds = 0x55, Evens = 0xaa; 
unsigned char ArrayFill [4][4]; 

//------------------------------------------------------------------------------ 
// Initialize ArrayFill to 0xff 
//------------------------------------------------------------------------------ 
{ 
for (i=0; i<=3; i++) 
    for (j=0; j<=3; j++) 
     ArrayFill[i][j] = 0xff; 
} 
//------------------------------------------------------------------------------ 
// Fill ArrayFill with the indices values and calculate the sum of the indices 
//------------------------------------------------------------------------------ 
{ 
for (i=0; i<=3; i++) 
    { 
    for (j=0; j<=3; j++) 
     { 
     ArrayFill[i][j] = ????????; 
     sum=??????; 
     } 
    } 
} 
sum = sum; 
+0

uはこれまでに試してみましたでしょうか? – delta

+0

初期化を行うことはできますか、それとも割り当てにする必要がありますか?配列はCで代入することはできません(配列が構造体の一部でない限り)。これにより、行を配列に割り当てるのが困難になります。 VLAではほとんどの配列を初期化することができ、動的に割り当てられた配列は正式には初期化できません。 –

+0

それが私の問題の原因です。私が使用する必要がある上記の値の実際の名前は、Zeroes、Ones、Odds、Evensの順であり、コンパイラはそれを好まない。私は必要な方法を使用することができますが、私はそれを初期化するときに好きではありません。 –

答えて

0

私はあなたがunsigned charデータ型に16進数値を初期化するためにお勧めします。例えば

unsigned char hex[4][4]; 
    for(i=0;i<4;i++){ 
      for(j=0;j<4;j++){ 

        scan("%s",hex[i][j]); 
      } 
    } 
+0

コマンドウィンドウからユーザー入力ではなくコード化されているので、値の1つの行の例を実行できますか?それは上記の4つだけ必要です。 –

+0

私はこれまでのことを追加しました –

関連する問題