2017-02-20 79 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

我已添加到目前为止我所拥有的 –