求大家帮忙
quxiao(int x,int y){
int z;
z=x<y? x:y;
return(z);
}
main()
{
int i;
int a[2];
scanf("%d,%d",&a[0],&a[1]);
a[0]=quxiao(a[1],a[0]);
printf("%d,%d",a[0],a[1]);
getch();
}
刚刚写了一个编辑取数组元素中较小的元素,并将a[0]赋值为较小元素的函数。
可是在运行时,比如输入2 3, 输出的结果是2 12803,我到底是哪里弄错了。。。,望高人指点 #include"stdio.h"
quxiao(int x,int y)
{
int z;
if(x>y)
z=y;
else
z=x;
return(z);
}
main()
{
int i;
int a[2];
for(i=0;i<2;i++)
scanf("%d",&a[i]);
a[0]=quxiao(a[0],a[1]);
printf("%d,%d",a[0],a[1]);
getchar();
}
这里的IF你可以自己改为条件表达式!
输入
1
2
你自己编译出来看下!
还有你的程序最后一行的getch应该是getchar!
[[it] 本帖最后由 独孤小梦 于 2008-7-18 00:28 编辑 [/it]]
我觉得应该是这样的
楼主程序并没有问题,我在turboc2下运行没有问题,楼主的程序估计是用别人的.仔细看下这一句 scanf("%d,%d",&a[0],&a[1]);
它要求输入格式为 2,3 而不是 2 3
否则应该少一个逗号 scanf("%d %d",&a[0],&a[1]);
我试过了用加逗号的格式输入没有任何问题,而不加逗号就会出现楼主所说的问题.
至于最后一行的getch()是用来进行回显用的,所以程序无需做任何更改
请大家指教^_^ 的确是粗心大意^没看到那个,……
最后的那个,getch我没法在VC里编译正确,需要改为:getchar才能编译成功!
LZ的问题还在出现!
LS的回答的确不错!
但是 printf("%d,%d",a[0],a[1]);这里,我觉得是鸡肋!把这个去了,还能清晰的看到最小的数字
如果还要把所有的东西输出来,那么建议: putchar(10);然后在使用这个printf语句!
我使用的是VC6,如果有什么错的,请高手指教! 恩 是那个小逗号的错误 楼主用的函数不错 虽然不怎么推荐 不过至少说明你理解了三目运算符和赋值运算符优先级的问题 谢谢大家,就如qxykzx所说,问题果然出在scanf("%d,%d",&a[0],&a[1])中的"%d,%d"中的逗号身上,如果输入数据时的格式要和scanf函数里的格式保持一致。
谢谢qxykzx,谢谢独孤小梦,谢谢coming。
祝大家周末愉快
页:
[1]
