为C中的结构变量赋值
我在为结构中的变量赋值时遇到问题。我的代码如下所示为C中的结构变量赋值,c,struct,C,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]); } } typedef结
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]);
}
}
typedef结构\u
{
双值[100];
int-id;
}神经元;
int main(){
神经元结;
int i;
对于(i=0;i<100;i++){
节点值[i]=10;
printf(“值为%d\n”,node.value[i]);
}
}
我分配给结构变量的值是10,但我得到的是0而不是10。有人知道问题出在哪里吗?您使用了错误的格式说明符来
printf
%d
格式说明符需要一个int
参数,但您传入的是一个双精度
。使用错误的格式说明符会调用未定义的行为
对于双精度
,请使用%f
格式说明符
printf("the value is %f\n",node.value[i]);
提高编译器中的警告级别或更可能-不要忽略编译器发出的警告!谢谢您的帮助。如果回答了您的问题,请不要忘记将此答案标记为已接受。@Stephancher不适用于
printf
。对于scanf
,使用%lf
表示double*
,使用%f
表示float*
。