大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
超过10年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都做网站、成都网站建设、成都外贸网站建设,成都网站推广,成都网站优化,整体网络托管,微信小程序定制开发,微信开发,APP应用开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
其实你这里主要问题是不能接收到两个输入的字符串。
你这里的接受规则是输入两个字符串并用 , 号分隔,比如:abc,abc
但是这里就有一个问题了!计算机怎么知道你输入的,号是你输入的第一个字符串的一个字符呢?还是你两个字符串的分隔?
所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc
第二个字符串为\n
所以你这里得到的始终是1
至于解决的办法:
让计算机识别你的分隔符号
那方法就很多了,比如 scanf("%s%s",a,b);输入的时候用空白符(空格,tab,回车键)相间隔
从左到右,依次比较字母的ASCII码的大小,遇到不同字符或'\0'结束。
基本形式:strcmp(str1,str2)
str1=str2时,返回零;str1str2时,返回负数;str1str2时,返回正数。
比如Apple和Banana比较,先比较第一个字母A和B,A的ASCII码是65,B的是66,所以AppleBanana。
compare和computer比较,前4个字母相同,第五个字母a和u,a的ASCII码是97,u的是117,所以comparecomputer。
扩展资料:
特别注意:
strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
1、当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。
2、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1s2时,返回为负数
当s1=s2时,返回值= 0
当s1s2时,返回正数
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A""B" "a""A" "computer""compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
qsort的最后一个参数是一个函数指针。通过这个函数指针把自己写的比较函数传给qsort. 这样的话qsort就可以知道如何比较大小,才能制定排序的标准。通过自己传入不同的比较函数,可以用qsort实现不同数据类型的排序。比如string, int, double, 甚至结构体。
采用这种手段的话,就可以复用排序的逻辑,而不必要为所有的数据类型都提供一个qsort函数。
同理bSearch函数里面也需要比较函数,道理是一样的。