我知道你为什么会错了,因为你输入数据的方式不对,正确的如:(3.5,4.5\n)就可以了,你么有好的习惯,也有么调式的经验,如果你输入错误如:(3.5 4,5)或者(3,5 回车 4,5) 就会出错,因为你的b变量没有得到数据或者数据溢出了,调试的结果是这样的 b= -1.0737418e+008 float,
成都创新互联公司专业为企业提供随州网站建设、随州做网站、随州网站设计、随州网站制作等企业网站建设、网页设计与制作、随州企业网站模板建站服务,十载随州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
正确的代码如:scanf("%f,%f,",a,b); (3.5,4.5)比较等于4,注意是道号,输入也要加道号
正确的代码如:scanf("%f %f,",a,b); (3.5 4.5)比较等于4 ,%f后面是空格,你输入的数后也需要是空格或者回车
你这代码错太多了,比如float比较的是两个实数,但你实际是int 类型结果,所以你的代码只是用与2个int类型的整数比较,可以看看郝斌的C语言视频有详细讲这个Max函数的
一起学习,谢谢
#includestdio.h
#define
N
100
int
input(char*a,char*b)//输入两个字符串
{
printf("Input
the
first
information:\n");
fgets(a,N,stdin);
printf("Input
the
secend
information:\n");
fgets(b,N,stdin);
}
int
my_strcmp(char*a,char*b)//比较字符串每个字符的大小
{
while((*a!='\0')(*b!='\0'))
{
if(*a*b)
{
return
0;
}
else
if(*a*b)
{
return
1;
}
else
{
a++;
b++;
}
}
if((*a=='\0')(*b!='\0'))//字符串b比字符串a长
{
return
1;
}
else
if((*a!='\0')(*b=='\0'))//字符串a比字符串b长
{
return
0;
}
else
{
return
2;
}
}
int
main()
{
char
a[N]={0};
char
b[N]={0};
int
net2=0;
input(a,b);//调用输入函数
net2=my_strcmp(a,b);//调用比较大小函数
if(0==net2)//输出大小
{
printf("ab\n");
}
else
if(1==net2)
{
printf("ab\n");
}
else
{
printf("a=b\n");
}
return
0;
}
扩展资料:
一、return在函数中的作用
我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。
二、return语句的特点
1、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。
2、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。
3、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。
三、return的默认值:return函数默认的返回值为undefined。
代码如下:
#include "stdio.h"
void main()
{
float a, b ,c;
printf ("请输入三个数,会为你从大到小排列!\n");
scanf("%f %f %f",a,b,c);
if(abc){printf("%f,%f,%f",a,b,c);}
else if(accb){printf("%f,%f,%f",a,c,b);}
else if(baac){printf("%f,%f,%f",b,a,c);}
else if(bcca){printf("%f,%f,%f",b,c,a);}
else if(cbba){printf("%f,%f,%f",c,b,a);}
else if(caab){printf("%f,%f,%f",c,a,b);}
//编译器不识别三个连续的符号运算,必须用且()和或(||)he否(!)
}
扩展资料
C语言中宏定义的优点
方便程序的修改
使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时, 可以用较短的有意义的标识符来写程序,这样更方便一些。
相对于==全局变量==两者的区别如下:
1、宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以。
2、宏定义的只是一段字符,在编译的时候被替换到引用的位置。在运行中是没有宏定义的概念的。而变量在运行时要为其分配内存。
3、宏定义不可以被赋值,即其值一旦定义不可修改,而变量在运行过程中可以被修改。
4、宏定义只有在定义所在文件,或引用所在文件的其它文件中使用。 而全局变量可以在工程所有文件中使用,只要再使用前加一个声明就可以了。换句话说,宏定义不需要extern。
第一种方法:
输入两个数值。
比较大小。
输出结果。
以整型为例,代码如下:
#include
int main()
{
int a,b;
scanf("%d%d",a,b);
if(ab) printf("%d%d\n",a,b);
else if(a == b) printf("%d=%d\n",a,b);
else printf("%d%d\n",a,b);
}
第二种方法:
#include
using namespace std;int main()
{
int nA,nB;
cinnAnB;//读入两个数
if (nA nB)
{
cout"nA nB"endl;
}
else
{
if (nA == nB)
{
cout"nA == nB"endl;
}
else
{
cout"nA nB"endl;
}
}
}
第三种方法:
#include
void main()
{
int a,b; //定义两个变量
scanf("%d %d",a,b); //从键盘输入值分别给这两个变量
if(ab) //判断a是否大于b
printf("a 大于b");
else if(a==b) //判断a是否等于b
printf("a 等于b");
else //若上面两种情况都没有发生则a小于b
printf("a 小于b");
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
#define zuida(a,b,c) ((a)(b)?(ac?a:c):(bc?b:c))
程序编译时会【原样替换,不作运算】宏,故程序中宏zuida(a,b,c)等价于((a)(b)?(ac?a:c):(bc?b:c))
所以遇到宏直接把它还原成它等价的语句即可
经查询三目运算符运算规则如下: b ? x:y,先计算条件b,然后进行判断。如果b的值为true,取x的值;否则,取y的值。
( {(a)(b)?【(ac?a:c)】:【(bc?b:c)】} )
①Y/N ? ②Y/N ?a:c : ③Y/N?b:c
Y/N ? A : B
分别计算②③的运算结果为A、B最后计算①的结果:真或假,真就取值A假就取B,所以这个宏就是求三个数的最大数的
文章标题:c语言用宏写比较大小函数 比较大小C语言
网页地址:https://www.cdcxhl.com/article2/hggsic.html
成都网站建设公司_创新互联,为您提供品牌网站建设、定制网站、商城网站、移动网站建设、企业建站、品牌网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联