当前位置: 代码迷 >> C语言 >> 运行后,结果怎么是这样的
  详细解决方案

运行后,结果怎么是这样的

热度:199   发布时间:2007-06-20 02:03:39.0
运行后,结果怎么是这样的
main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}

比如我输入a=12 b=23,结果c=3129
其他的输入也是结果c=3129,这是怎么一回事。
搜索更多相关的解决方案: 结果  运行  

----------------解决方案--------------------------------------------------------
程序代码:

void main()
{
int a=0,b=0,c=0; //初始化
scanf(\"%d,%d\",&a,&b);
c=max(a,b);
printf(\"max=%d\",c);
}

----------------解决方案--------------------------------------------------------
#include<stdio.h>


int max(int,int);
main()
{ int a,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
----------------解决方案--------------------------------------------------------
我去试试,先谢谢了
----------------解决方案--------------------------------------------------------
运行后,出现问题,比如 输入a=123 b=1223
结果却是 123

[此贴子已经被作者于2007-6-28 12:10:57编辑过]


----------------解决方案--------------------------------------------------------

初不初始化在这都没必要,因为在传递之前已经用scanf给于其赋值,数值大的话就会出现比较错误.-->建议你去看看数据类型那章先,了解给类型能保存的最大数字,自己去选用合适的类型。


----------------解决方案--------------------------------------------------------
整形是有范围的 超过了当然出错
可以用长整型,如果还要更大的话楼主干脆用字符数组吧
----------------解决方案--------------------------------------------------------
运行没错..可能是你输入数据时格式错了
输入: 123,543 //注意。。。。。
输出: 543

int main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
int max(int x,int y)
{
if(x>y) return x;
else return y;
}
----------------解决方案--------------------------------------------------------

输入格式应该跟你的scanf是一样的
输入123,321试试


----------------解决方案--------------------------------------------------------
搂住的代码没有问题,如果你输入的没有错,应该是你编译器的问题
你的程序要多用printf,来调试,如果程序不对,也要知道是那个一句话不对

----------------解决方案--------------------------------------------------------
  相关解决方案