编写一个c程序 输入a b c三个值,输出其中的最大者。

#include<stdio.h>intmain(){inta,b,c,max;scanf("%d,%d,%d",&a,&b,&c);if(a>b)max=a;elsem... #include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)max=a;
else max=b;
if (max>c)printf("max=%d\n",max);
else printf("max=%d\n",c);
return 0;
}

怎么输入b为负数的时候,输出的结果为a,这个程序哪里有问题吗?
输入b为负数,c大于a的时候,输出为a。
展开
 我来答
CJJohn
2017-02-19 · Persistence is harder than eff...
CJJohn
采纳数:475 获赞数:1362

向TA提问 私信TA
展开全部
输入的b为负数,但是你的a是多大?如果a比b大的话输出a也是有可能的
更多追问追答
追问
输入b为负数,c大于a,输出为a
追答
你能发一下你的运行截图不
Conqueror
高粉答主

推荐于2019-09-02 · 关注我不会让你失望
知道大有可为答主
回答量:794
采纳率:100%
帮助的人:24.4万
展开全部
方法1:(利用选择结构设计)
#include <stdio.h>int main()
{
int a, b, c, max;
scanf("%d %d %d", &a, &b, &c); //输入3个数字
//判断3个数值大小
if (a > b){ if (a > c) max = a; else
max = c;
} else{ if (b > c) max = b; else
max = c;
} printf("Max=%d\n", max); //输出最大值
return 0;
}123456789101112131415161718192021
方法2:(利用条件表达式)
#include <stdio.h>int main()
{ int a, b, c, max; scanf("%d %d %d", &a, &b, &c); //输入3个数值
max = (a > b ? (a > c ? a : c) : (b > c ? b : c)); //判断3个数值大小
printf("Max=%d\n", max); //输出最大值
return 0;
}123456789
方法3:(利用函数的模块化设计)
#include <stdio.h>int max(int x, int y, int z); //定义最大值函数int main()
{ int a, b, c; scanf("%d %d %d", &a, &b, &c); //输入3个数值
printf("Max=%d\n", max(a, b, c)); //输出最大值
return 0;
}//最大值函数int max(int x, int y, int z)
{ return (x > y ? (x > z ? x : z) : (y > z ? y : z));
}1234567891011121314
方法4:(利用指针法1)
#include <stdio.h>void max(int *p, int *q, int *r); //定义最大值函数int main()
{ int a, b, c, *x, *y, *z; //定义三个值和对应指针变量 x=&a, y=&b, z=&c; printf("Please enter number a b c: "); //输入三个数
scanf("%d %d %d", x, y, z);
max(x, y, z); //调用最大值函数 return 0;
}
//最大值函数
void max(int *p, int *q, int *r)
{ int m; m=*p>*q ? (*p>*r ? *p : *r) : (*q>*r ? *q : *r); printf("Max=%d\n", m);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-02-19
展开全部
应为scanf("%d%d%d",&a,&b,&c); 没有逗号。还有你忘记abc相等的情况了
PS:三整数排序程序
#include <stdio.h>

int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;a=b;b=t;
}//执行完毕后a<=b
if(a>c)
{
t=a;a=c;c=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
printf("%d%d%d\n",a,b,c);
return 0;
}
更多追问追答
追问
你这个不行,就普通的,a,b,c分别为12,-85,96这样输出的还是12
追答
我用你的程序试了,删掉逗号以后没问题啊。不删逗号的话输出的是4202080
#include
int main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if (a>=b)max=a;
else max=b;
if (max>=c)printf("max=%d\n",max);
else printf("max=%d\n",c);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式