當前位置:首頁 » 編程語言 » c語言比較函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言比較函數

發布時間: 2022-02-11 17:54:37

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++)//依次進行比較,直到二者不同或遇到''停止
{
if(*str1=='')//若字元串全部相等返回0
return0;
}
return*str1-*str2;//否則返回二者之差
}

這是程序原型

㈥ C語言字元串比較函數

#include<string.h>
#include<stdio.h>
void main()
{
char str1={"abc"},str2={"485afsd"};
if(strcmp(str1,str2)>0) printf("yes");
} 去掉個o就可以了,樓主要多看看編譯器的使用方法,是什麼錯誤在下方是有提示的

㈦ c語言中比較兩個字元串的大小

在C語言中比較字元串大小,可以使用庫函數strcmp,也可以自己編寫比較函數。

1、使用庫函數。

需要包含頭文件string.h。聲明為:

int strcmp(const char *s1, const char *s2);

會根據字典序比較s1和s2, 如果二者相等,則返回0;如果s1較小則返回-1;如果s1較大則返回1。

比如

strcmp("123", "123") 結果為0。

strcmp("123", "456") 結果為-1。

strcmp("456", "123") 結果為1。

2、自定義函數。

實現字元串比較的方法有很多,其基本原理為按位元組比較。

舉例如下:

intmy_strcmp(char*s1,char*s2)
{
inti;
for(i=0;s1[i]==s2[i]&&s1[i]!=0;i++);//循環比較,達到結束或者出現不相等值時退出循環。

if(s1[i]==s2[i])return0;//代表全部相等,返回0
if(s1[i]<s2[i])return-1;//s1較小,返回-1。
return1;//s1較大,返回1.
}

㈧ C語言怎麼定義一個函數比較兩數大小,謝謝了

假定是比較整數
int sortab(int a,int b)
{int c ;
if(a>b) c=1;
else if(a==b)c=0;
else c=-1;
return c;
}
給定2數,如果前數大得到1,後數大得到-1,相等得到0

㈨ C語言 請提供一個兩個時間的比較函數

可以使用CLOCK()函數:
clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
clock_t clock(void) ;
這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock);若掛鍾時間不可取,則返回-1。其中clock_t是用來保存時間的數據類型,在time.h文件中,可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
}

㈩ c語言的字元串比較函數strcmp比較的是什麼

這個函數是用於比較字元串中字元值的大小的、從第一個字元開始比較,對相比較的兩個字元串的第一個字元s1、s2;
當s1<s2時,返回值<0
當s1>s2時,返回值>0
,若相等,則繼續比較。如果兩個字元串相等,則返回值為0