注册 登录
编程论坛 新人交流区

[求助]C程序编译出错,求正解!谢谢!

wenji 发布于 2007-10-09 13:05, 631 次点击
程序源代码:
------------------------------------------------------------------
#include "stdio.h"
void main()
{
int x,y,top;
top=x*y;
printf("请输入您购买的商品数量和单价:\n");
scanf("%d%d",&x,&y);
if(x<5)
printf("您购买的商品总价是%d,不打折\n",top);
else if(x>=5 && x<10)
printf("您购买的商品总价是%d,可以享受1%%的折扣\n",top);
else if(x>=10 && x<20)
printf("您购买的商品总价是%d,可以享受2%%的折扣\n",top);
else if(x>=20 && x<30)
printf("您购买的商品总价是%d,可以享受4%%的折扣\n",top);
else if(x>=30)
printf("您购买的商品总价是%d,可以享受6%%的折扣",top);
}
----------------------------------------------------------------------
编译连接后没错误,但输入2个数时的相乘结果总是:587194718
如图:

这个怎么回事啊?我想了好久都没想出来啊~


怎么改进下才能让相乘的结果得到正确值呢?

[此贴子已经被作者于2007-10-9 13:06:54编辑过]

16 回复
#2
xindeluoye2007-10-09 14:43
"top=x*y;"
这句好象要放到
"scanf("%d%d",&x,&y);"
这句之后
#3
gavinhuang2007-10-09 14:55
top被覆盖了
#4
风刃2007-10-09 15:03
top=x*y时,变量x,y好像没附值.
#5
wenji2007-10-10 13:00
以下是引用xindeluoye在2007-10-9 14:43:41的发言:
"top=x*y;"
这句好象要放到
"scanf("%d%d",&x,&y);"
这句之后

谢谢指正!

#6
wenji2007-10-10 13:00
以下是引用gavinhuang在2007-10-9 14:55:18的发言:
top被覆盖了

什么意思啊?谢谢!

#7
wenji2007-10-10 13:00
以下是引用风刃在2007-10-9 15:03:14的发言:
top=x*y时,变量x,y好像没附值.

谢谢指正!

#8
qdwwzzh2007-10-10 13:31
学习学习
#9
woshizcl2007-10-10 13:48
为什么非要来新人区回帖10篇啊
#10
hdl12007-10-10 14:01
就是
我不明白为什么新手要来这边发10个贴
#11
hdl12007-10-10 14:03
新手不定就是
刚学的
我希望坛主改一下
#12
dhy4632007-10-10 15:14
2楼的,正确!
#13
cyx0432007-10-10 16:16
top=x*y须在scanf("%d%d",&amp;x,&amp;y);的后面,这样才能在把x,y的值放入内存后计算出top的值。
#14
ondy2007-10-10 16:26
#include "stdio.h"
void main()
{
int x,y,top;
printf("请输入您购买的商品数量和单价:\n");
scanf("%d%d",&x,&y);
top=x*y; //应该这样改
if(x<5)
printf("您购买的商品总价是%d,不打折\n",top);
else if(x>=5 && x<10)
printf("您购买的商品总价是%d,可以享受1%%的折扣\n",top);
else if(x>=10 && x<20)
printf("您购买的商品总价是%d,可以享受2%%的折扣\n",top);
else if(x>=20 && x<30)
printf("您购买的商品总价是%d,可以享受4%%的折扣\n",top);
else if(x>=30)
printf("您购买的商品总价是%d,可以享受6%%的折扣",top);
}
#15
novo8512007-10-10 17:06
顶顶顶顶顶顶
#16
jh46172332007-10-10 17:09

我也不明白为什么新手要来这边发10个贴!!!!!!
#17
猩猩2007-10-10 17:49
我也不知道啊
1