【发布时间】:2013-08-30 01:25:53
【问题描述】:
我正在尝试运行一个程序,该程序在 c... 中实现具有结构的函数,即:
#include<stdio.h>
#include<conio.h>
struct store
{
char name[20];
float price;
int quantity;
};
struct store update (struct store product, float p, int q);
float mul(struct store stock_value);
main()
{
int inc_q;
float inc_p,value;
struct store item = {"xyz", 10.895 ,10}; //## this is where the problem lies ##
printf("name = %s\n price = %d\n quantity = %d\n\n",item.name,item.price,item.quantity);
printf("enter increment in price(1st) and quantity(2nd) : ");
scanf("%f %d",&inc_p,&inc_q);
item = update(item,inc_p,inc_q);
printf("updated values are\n\n");
printf(" name = %d\n price = %d\n quantity = %d",item.name,item.price,item.quantity);
value = mul(item);
printf("\n\n value = %d",value);
}
struct store update(struct store product, float p, int q)
{
product.price+=p;
product.quantity+=q;
return(product);
}
float mul(struct store stock_value)
{
return(stock_value.price*stock_value.quantity);
}
当我初始化 struct store item = {"xyz",10.895,10} ; 时,成员没有存储值,即 ater this (struct商店项目)排队成员:
item.name 应该是 "xyz",
item.price应该是10.895,
item.quantity 应为 10;
但 除了 item.name=xyz 其他成员采用自己的 garbage 值..我无法理解这种行为...... 我正在使用 devc++(带有 mingw 的 5.4.2 版)...
我遇到问题是因为我使用 char name[20] 作为 struct store 的成员吗???
请有人帮忙删除我的代码中的错误..尽快回复
【问题讨论】:
-
发布你得到的输出..
-
除了不合适的
printf,考虑看看这个stackoverflow.com/questions/330793/… -
我不知道你可以分配这样的结构。
-
main()应该是int main(void)。 -
@Jim:那是初始化,不是赋值。
标签: c struct char initialization