我在向struct中的变量赋值时遇到问题。我的代码如下所示。
typedef struct _neuron
{
double value[100];
int id;
}NEURON;
int main() {
NEURON node;
int i;
for(i = 0; i < 100; i++){
node.value[i] = 10;
printf("the value is %d\n",node.value[i]);
}
}
我分配给struct变量的值是10,但是我得到0而不是10.有谁知道问题在哪里?
答案 0 :(得分:1)
您使用了错误的格式说明符printf
。
%d
格式说明符需要int
参数,但您正在传递double
。使用错误的格式说明符会调用未定义的行为。
对于double
,请使用%f
格式说明符。
printf("the value is %f\n",node.value[i]);