2017-02-20 53 views
0

有誰知道我該如何製作一個C程序,它可以將十六進制值分配給4x4陣列中的整行?每行都有一個值(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數據類型初始化的十六進制值。

例如:

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

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

您可以使用其中一個值做一行的示例嗎?因爲這些代碼不是通過命令窗口進行用戶輸入編碼的?它只需要上面的四個。 –

+0

我已添加到目前爲止我所擁有的 –