c程序比较三个数大小

#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,e;
scanf(%d,%d,&d,&a,&b,&c);
e=max(a,b,c);
printf("max=%d\n",e);
}
int max(int x,int y,int z)
{
int m;
if (x>y) m=x;
else m=y;
if (z>m) m=z;
else return(m);
}
请问哪里错了

改成这样:
#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,e;
scanf("%d%d%d",&a,&b,&c);
e=max(a,b,c);
printf("max=%d\n",e);
}

int max(int x,int y,int z)
{
int m;
if (x>y) m=x;
else m=y;
if (z>m) m=z;
else return(m);
}

扩展资料:

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

参考资料:c程序_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-11-05

1.scanf函数使用错误,应改为 :

scanf("%d,%d,%d",&a,&b,&c);

需要注意的是,上述语句在输入数据时需要加“,”,如“2,3,4”。

如果"%d"是连着写的,例如:scanf("%d%d%d",&a,&b,&c);

则在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格、tab键或者回车键)分隔。

2.函数max( )错误,若z为最大值时,函数无返回值。函数max( )应修改为:

int max(int x, int y, int z) {

if (x>y) m=x;

else m=y;

if (z>m) m=z;

return(m);  //返回最大值m

}

资料拓展:

scanf函数的调用格式为:scanf("<格式化字符串>", <参量表>);

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于参量表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

参考资料:百度百科-scanf

本回答被网友采纳
第2个回答  2018-12-06

代码没有问题,

不过你的输入没按照你自己scanf所设定的格式来

scanf("%d,%d,%d",&a,&b,&c);
这么写的话,你应该这么输入:
1,7,8(回车)
或者
2,5,3(回车)
别忘了逗号,也别忘了将3个数都输完再回车

如果这么写,
scanf("%d%d%d",&a,&b,&c);
就可以这么输入:
2(回车)
3(回车)
1(回车)

扩展资料

C语言编写3个数比较大小其他代码样例:

# include <stdio.h> //头文件
int max(int x,int y,int z); //声明子函数
void main()//主函数

{
int a,b,c,d;//定义变量名
printf("shuru a,b,c"); //打印出shuru a,b,c
scanf("%d,%d,%d",&a,&b,&c); //录入数据
d=max(a,b,c);//调用子函数
printf("max = %d\n",d);
}
int max(int x,int y,int z)//子函数体,比较大小返回最大值
{
int m,int n;
if(x>y) m = x;
else m = y;
if(m>z) n = m;
else n = z;
return(n);
}

第3个回答  2016-12-07

输入三个数

找到最大的和最小的

输出三个数。 

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

第4个回答  2011-12-22
1、利用函数的调用(不懂就去学习函数)
# include<stdio.h>

void max(int a,int b,int c)
{

if(a>b && b>c)
printf("%d %d %d\n",a,b,c);

else if(a>c && c>b)
printf("%d %d %d\n",a,c,b);

else if(b>c && c>a)
printf("%d %d %d\n",b,c,a);

else if(b>a&&a>c)
printf("%d %d %d\n",b,a,c);

else if(c>a && a>b)
printf("%d %d %d\n",c,a,b);

else if(c>b && b>a)
printf("%d %d %d\n",c,b,a);

else
printf("%d %d %d\n", a, b, c);

}

int main(void)
{
int a,b,c;
printf("请输入第一个数后空格,输入第二个数后空格,输入第三个数后回车:\n");

scanf("%d %d %d",&a,&b,&c);

max(a,b,c);

return 0;
}
2.
# include<stdio.h>

int main(void)
{
int a,b,c;
printf("请输入第一个数后空格,输入第二个数后空格,输入第三个数后回车:\n"); //这里加了一个换行符

scanf("%d %d %d",&a,&b,&c);

if(a>b && b>c)
printf("%d %d %d\n",a,b,c);

else if(a>c && c>b)
printf("%d %d %d\n",a,c,b);

else if(b>c && c>a)
printf("%d %d %d\n",b,c,a);

else if(b>a&&a>c)
printf("%d %d %d\n",b,a,c);

else if(c>a && a>b)
printf("%d %d %d\n",c,a,b);

else if(c>b && b>a)
printf("%d %d %d\n",c,b,a); //和楼上一样,你这里缺少个分号

else
printf("%d %d %d\n", a, b, c);

return 0;
}
我这里用的是这个整体框架,和你那样写的是一样的,但你这样写void main()有的编译器会报错
int main(void)
{

return 0;
}
楼主,你的思路基本正确,但是你编写的这个语句,有个逻辑错误,就是使用if...else..if...else语句,要注意一个问题,最后要加上个else语句作为程序的结束。
建议:今后一定要要编写出高质量的代码,还有程序要整洁,因为程序很大的时候,就会感觉很乱,因为你以后进公司编写的代码不只是自己看,别人看不懂的话那是不行的,希望可以帮助到楼主,还有不懂的可以在线百度HI问我
相似回答