㈠ c语言函数比较大小
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
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);
}
㈡ C语言的比较两个时间的函数
1、方法一:若时间为结构体变量,比较两个时间的大小,而且不能改变时间的值,可以是:
int timecmp(date_t* date1,date_t* date2)
{
if(date1-> year==date1-> year)
return memcmp(date1, date2,sizeof(date_t));
else
return date1-> year-date2-> year
}
2、方法二:
long getTimeInterval(const char *t1, const char *t2) {
struct tm tm1, tm2;
time_t start, end;
double diff;
memset(&tm1, 0, sizeof(tm1));
memset(&tm2, 0, sizeof(tm2));
strptime(t1, "%Y%m%d", &tm1);
start = mktime(&tm1);
strptime(t2, "%Y%m%d", &tm2);
end = mktime(&tm2);
diff = difftime(start, end);
return d2l(diff);
}
调用:
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20110326"));
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20990326"));
第一行输出:[-8208000]
第二行输出:[1292860801]
3、补充:C语言时间函数:
(1)、获得日历时间函数:
可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年
1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
(2)、获得日期和时间函数:
这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将
日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数
在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。
㈢ C语言中sqort函数里面的比较函数怎么写
#include<stdio.h>
#include<stdlib.h>
//
//ofelementsataddressespandq.
intcomparator(constvoid*p,constvoid*q)
{
//Getthevaluesatgivenaddresses
intl=*(constint*)p;
intr=*(constint*)q;
//bothodd,putthegreateroftwofirst.
if((l&1)&&(r&1))
return(r-l);
//botheven,putthesmalleroftwofirst
if(!(l&1)&&!(r&1))
return(l-r);
//liseven,putrfirst
if(!(l&1))
return1;
//lisodd,putlfirst
return-1;
}
//
voidprintArr(intarr[],intn)
{
inti;
for(i=0;i<n;++i)
printf("%d",arr[i]);
}
//
intmain()
{
intarr[]={1,6,5,2,3,9,4,7,8};
intsize=sizeof(arr)/sizeof(arr[0]);
qsort((void*)arr,size,sizeof(arr[0]),comparator);
printf("Outputarrayis ");
printArr(arr,size);
return0;
}
㈣ c语言字符串比较函数strcmp是什么意思
(1)strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
(2)比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
(4)c语言比较函数扩展阅读:
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。
在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。
尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。一般的说,有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存,和“变长字符串”,它的长度不是专断固定的并且依赖于实际的大小使用可变数量的内存。
㈤ C语言strcmp函数是怎么比较的
intstrcmp(constchar*str1,constchar*str2)//str1和str2指向两个字符串
{
while(*str1++==*str2++)//依次进行比较,直到二者不同或遇到'