c語言如何寫才能判斷兩個陣列相等

2021-09-13 18:08:18 字數 2986 閱讀 1059

1樓:會飛的小兔子

#include

intmain()

inti=0;

intj=0;

intarr1=;

intarr2=;

for(i=0;ifor(j=0;jif(arr1[i]==arr2[j])

printf("存在相同元素");

break;

break;

return0;

擴充套件資料c++比較兩個陣列是否相等

constintsize=5;

intarraya[size]=;

intarrayb[size]=;

boolarraysequal=true;//標誌變數intcount=0;//迴圈控制變數

//確定元素是否包含相同的資料

arraysequal=false;

count++;

//顯示合適的訊息

if(arraysequal)

cout<<"thearraysareequal.\n";

else

cout<<"thearraysarenotequal.\n";

2樓:風若遠去何人留

並沒有系統函式可以實現這個功能,需要自行編寫函式:

一、演算法分析:

1、兩個陣列相等,需要型別相同,長度相同,各個元素值及順序相同。

2、根據陣列相等的含義,型別無需判斷,因為型別不同本身就沒有可比性。長度及元素值需要編寫**判斷。

以整型陣列為例,可以編寫函式如下:

int array_cmp(int *a, int al, int *b, int bl)

三、優化**:

在c語言中有記憶體比較函式memcmp, 可以利用這一函式簡化步驟,提高效率。

int array_cmp(int *a, int al, int *b, int bl)

注意,使用memcmp需要引用標頭檔案string.h。

3樓:匿名使用者

先判斷陣列長度是不是相等,

然後比較每個相同索引號的元素是不是相等

c語言中判斷兩個陣列內容是否相同!

4樓:墨汁諾

c語言有個函式memcmp是用來進行記憶體比較的extern

intmemcmp(void

*buf1,

void

*buf2,

unsigned

intcount);

if(0==memcmp(id,id1,20))//id1等於id2

先要明確運算子按優先順序不同分類,《c程式設計》運算子可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2.13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算子的運算順序。

產生**

在c語言中, 陣列屬於構造資料型別。一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

關於可變長陣列(vla)的問題:原來的c89標準中是不允許可變長陣列出現的,但是在c99標準中,加入了對vla的支援,但是支援的編譯器不多,而且由於棧溢位的安全問題,沒有太多的人敢用這個可變長陣列,所以在c11標準中又把它規定為可選實現的功能了。

5樓:

兩個陣列若長度不等,則兩陣列不等;若長度相等,則可用庫函式memcmp(a,b,n);判斷(其中a、b是兩個陣列指標,n是長度),返回0則a與b相等,否則不等。若是兩個字串則無論二者是否等長,都可直接呼叫庫函式strcmp就可解決。該函式原型是int strcmp(const char *a,const char *b);,用兩個字串實參指標呼叫後返回1則表示a字串大於b字串,若返回-1則是b字串》a字串,返回0則表示兩個字串相等。

所以只要用if語句判斷一下,返回值不為0則二字串不相等,為0則相等。使用以上兩函式都得包含標頭檔案string.h,下面提供兩個字串比較**作參考:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "string.h"

int main(void)

6樓:

使用'/0'啊,即先用長度函式(不好意思我不記得拼寫了)判斷兩者長度,長度相同時,求出長度n,此處n=1。然後a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然後計算時就會忽略後面的不定空間的資料了。

7樓:

使用字串比較函式strcmp:

原型:extern int strcmp(const char *s1,const char * s2);

用法:#include 功能:比較字串s1和s2。

說明: 當s1s2時,返回值》0

引入標頭檔案string.h然後再用if (strcmp(id, id1) == 0)做判斷即可。

8樓:匿名使用者

一個變數指標a指向id1, 一個變數指標b指向id2,result =0;

when(i=0;i++ i,i<20)

else i++;}

c語言中如何判斷兩個陣列內容是否相同?

9樓:匿名使用者

c語言有個函式 memcmp 是用來進行記憶體比較的

extern int memcmp(void *buf1, void *buf2, unsigned int count);

if(0==memcmp(id,id1,20)) //id1等於id2

c語言中判斷兩個陣列內容是否相同

c語言有個函式memcmp是用來進行記憶體比較的extern intmemcmp void buf1,void buf2,unsigned intcount if 0 memcmp id,id1,20 id1等於id2 先要明確運算子按優先順序不同分類,c程式設計 運算子可分為15種優先順序,從高到...

c語言中如何判斷兩個char型的陣列是否相同

為什麼用strcmp比較出來是不相等,難道你的a,b不是字串,而是分別有10個字元把陣列佔滿了,那樣的話strcmp肯定不能用的,strcmp只能針對字串.使用 0 啊,即先用長度函式 不好意思我不記得拼寫了 判斷兩者長度,長度相同時,求出長度n,此處n 1。然後a 1 0 b 1 0 意思即是a ...

c語言如何判斷資料是隻有數或兩個數

除以bai 10 然後du算 當前的zhi 數字dao 減去 回10 是否小 答於0int i 123 int k 0 dowhile i 10 0 printf d k include stdio.h main printf 有 d位數 i x c 10 x 1x就是1位 x大於等於1 為2位以上...