#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的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
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
本回答被网友采纳代码没有问题,
不过你的输入没按照你自己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);
}
输入三个数
找到最大的和最小的
输出三个数。
#include <stdio.h>