我想在二维数组满时检查它。 但它不起作用,因为我不确定如何知道哪个是完整的 value_array[x][当它已满时]。
我可以做 static Short array_status1 =0;静态短 array_status2 =0; 静态短 array_status3 =0;静态短 array_status4 =0;并在我使用 dms = 1,2,3,4 之一时增加它。但还有其他方法吗?
由于 if(array_status > array_length) ,我的程序无法正常工作。如果我的函数不仅被调用为一个 dms,它会写入值 10 次,例如 5 个值 dms =1 和 5 个值 dms=2
我在微 Controller 中用 C 语言编程。
#define array_length 10
static int value_array[4][array_length];
static short array_status =0;
int average_value(int value,short dms)
{
int average,i =0;
if(array_status > array_length)
{
//average_value
array_status=0;
for(i =0 ; i < array_length ; i++)
{
average += value_array[dms][i];
}
average = average / array_length;
}
else
average =0;
value_array[dms][array_status] = value;
array_status++;
return average;
}
最佳答案
您可以将索引存储在数组中。
#define array_length 10
#define array_dim 4
static int value_array[array_dim][array_length];
static short array_status[array_dim] = {0};
int average_value(int value, short dms)
{
int average, i = 0;
if(array_status[dms] > array_length)
{
//average_value
array_status[dms] = 0;
for(i = 0 ; i < array_length ; i++)
{
average += value_array[dms][i];
}
average = average / array_length;
}
else
average = 0;
value_array[dms][array_status[dms]] = value;
array_status[dms]++;
return average;
}
关于C 检查 2D-Int 数组何时已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20100796/