三个数比较大小输出max,min问题,大神们速来,谢谢
为啥得不到正确的结果,求大神相助!!!!!#include <stdio.h>
void main()
{
int a,b,c,max,min;
printf("please input three numbers:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
if(b>c)
max=a,min=c;
if(a>c&&b<c)
max=a,min=b;
if(a<c)
max=c,min=b;
if(a<b)
if(a>c)
max=b,min=c;
if(b>c&&a<c)
max=b,min=a;
if(b<c)
max=c,min=a;
printf("max = %d\nmin = %d\n",max,min);
}
本帖最后由 ssehx 于 2013-12-1 03:50 编辑
怎么好像漏了几个大括号导致整体判断结构有问题.....
if(a>b){
if(b>c){
max=a;min=c;}
if(a>c&&b<c){
max=a;min=b;}
if(a<c){
max=c;min=b;}}
if(a<b){
if(a>c){
max=b;min=c;}
if(b>c&&a<c){
max=b;min=a;}
if(b<c){
max=c;min=a;}}
你可以试一下 我估计这样改应该跟你想的结果差不多 这段代码也没有考虑两个数相等的情况
我还有个疑问 你贴上来的这段代码编译能通过吗?
兄弟看了你的代码我凌乱了if为毛不加{},if(a>b)不就没什么用么?
你说的错误是不是当a==b或者a==c或者b==c时min和max的值是负数?这是你程序的bug,因为你没有在它们相等时,让程序做任何事情。
#include <stdio.h>
void main()
{
int a,b,c,max,min;
printf("please input three numbers:");
scanf("%d%d%d",&a,&b,&c);
min = a;
max = a;
if(min >b)
{
min = b;
}
if(min>c)
{
min = c;
}
if(max < b)
{
max = b;
}
if(max < c)
{
max = c;
}
printf("max = %d\nmin = %d\n",max,min);
}
这是网上的源码我给你贴一下,看看是不是更简单清晰? #include <stdio.h>
main()
{
int a,b,c,max,min;
printf("please input three numbers:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
if(b>c)
max=a,min=c;
if(a>c&&b<c)
max=a,min=b;
if(a<c)
max=c,min=b;
if(a<b)
if(a>c)
max=b,min=c;
if(b>c&&a<c)
max=b,min=a;
if(b<c)
max=c,min=a;
printf("max = %d\nmin = %d\n",max,min);
}
其实很简单,你把第二行的void去掉就可以了 #include <stdio.h>
int main()
{
int a;
scanf("%d %d %d",&a,&a,&a);
int i;
int j;
int t;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(a>a){
t = a;
a=a;
a= t;
}
}
}
printf("Min = %d,Max =%d\n",a,a);
return 0;
} 这编码习惯。。。 ssehx 发表于 2013-12-1 03:23 static/image/common/back.gif
怎么好像漏了几个大括号导致整体判断结构有问题.....
if(a>b){
通过啦,0错误0警告,谢谢围观 maomingkun 发表于 2013-11-30 22:27 static/image/common/back.gif
兄弟看了你的代码我凌乱了if为毛不加{},if(a>b)不就没什么用么?
你说的错误是不是当a==b或者a==c或者 ...
不考虑相等问题, ssehx 发表于 2013-12-1 03:23 static/image/common/back.gif
怎么好像漏了几个大括号导致整体判断结构有问题.....
if(a>b){
对了,谢谢哈。为啥 max=a;min=c;中间用分号,逗号不行么?求解答 这个是编程语法规范的问题 具体的我这种民工也解释不清楚 就像min=c后面你为什么用的是分号而不是句号 #include <stdio.h>
void main()
{
int x, y, z;
void max(int a, int b, int c);
scanf("%d %d %d", &x, &y, &z);
max(x,y,z);
}
void max(int a, int b, int c)
{
int max, min,temp;
if ( a<b )
{
temp = b;
b = a;
a = temp;
}
if ( a<c )
{
temp = c;
c = a;
a = temp;
}
if ( b<c )
{
temp = c;
c = b;
b = temp;
}
printf("max=%d, min=%d\n", a, c);
}兄弟,看你代码我也凌乱了,不过我运行你的代码结果是对的,能出来。 ︶ㄣ痕迹の天涯 发表于 2013-12-1 22:08 static/image/common/back.gif
对了,谢谢哈。为啥 max=a;min=c;中间用分号,逗号不行么?求解答
再给你个简单的代码:
#include <stdio.h>
void main()
{
int a,b,c,max,min;
scanf("%d%d%d",&a,&b,&c);
max=a>b?a:b;
if (max<c)
{
max=c;
}
min=a<b?a:b;
if (min>c)
{
min=c;
}
printf("max=%d\nmin=%d\n",max,min);
} max = a>b && a>c ? a : b > c ? b: c;
min = a<b && a<c ? a : b < c ? b :c;这样行吗? 小雨哥 发表于 2013-12-11 13:10 static/image/common/back.gif
这样行吗?
此问题早已解决,你这个似乎有点乱啊
页:
[1]