C關於判斷兩個陣列(一維)對應的元素完全相同的函式

時間 2021-08-11 17:49:43

1樓:

樓上正解 m=sizeof(a);

n=sizeof(b);

2樓:匿名使用者

話說,一個函式就搞定的strcpm(str1,str2);你這麼麻煩還。

而且你的程式有問題。先從開始說,你在函式引數傳引數的時候,就做了不必要的拷貝浪費了記憶體

bool if_prn_same(int* a,int* b)這樣傳地址就能省記憶體。在說程式的邏輯部分,你那個迴圈是在幹嘛啊大哥!為什麼要巢狀迴圈呢?

你再想想,比較兩個字串是不是這兩個字串的字元個數相等是前提呢?那為什麼不在迴圈中比較a[i]和b[i]呢?還巢狀迴圈導致錯誤了。

3樓:匿名使用者

#include

using namespace std;

bool if_prn_same(int a, int x, int b, int y); //判斷兩陣列對應的元素(無重複是否全部相同)

int main(void)

;int b = ;

int x = sizeof(a) / sizeof(int);

int y = sizeof(b) / sizeof(int);

bool work = if_prn_same(a, x, b, y);

cout << x << endl;

cout << y << endl;

if (work)

else

return 0;

}//判斷兩陣列對應的元素(無重複是否全部相同)bool if_prn_same(int a, int x, int b, int y)

}return true;

}else

}return true;}}

c++怎樣將一維陣列整體賦相同初值

4樓:加百列

陣列是不可以整體賦值的,只能在陣列定義的時候初始化。

一、一維陣列初始化如下:

二、二維陣列初始化如下:

二、多維陣列初始化如下:

5樓:

c/c++不支援陣列整體賦值,可以在宣告陣列時整體初始化。無論陣列有多大,全部初始化為0的操作很簡單,如int a[3000]=;就可以將a的3000個元素全部置0;若要賦其他值,例如全部賦值為7,寫成int a[3000]=;則不行,這隻給a[0]賦值為7,其餘的都是0。在陣列長度較小時,可直接寫入資料初始化,如int a[5]=;,若陣列太長,如前述a[3000],寫3000個數顯然是不現實的。

遇到這種情況,可以定義一個帶引數的巨集來簡化初始化的書寫,例如要把a[3000]全部初始化為9,可用以下**:

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

#include "stdio.h"

#define x(x) x,x,x,x,x,x,x,x,x,x//帶引數的巨集,x是預賦之值

int main(void);//以賦9為例

printf("%d %d %d\n",a[0],a[1499],a[2999]);//打幾個出來看看...

return 0;}

6樓:

第一:使用for迴圈賦值;

第二:使用memset函式進行賦值; 但是使用memset對非字元型陣列賦值有可能會出問題;

比如:int array1[200];

int val=2;

memset(array1,val,200*sizeof(int));

這樣的結果必然會出錯!因為memset是以位元組為單位進行賦值的,最後陣列的結果可預知,但是完全錯誤……如果是對字元陣列用這樣的方式進行賦值的話就不會出錯,因為字元只佔一個位元組,而int佔四個位元組……

7樓:

用memset函式,引數是陣列指標!可參照memset函式說明!

8樓:匿名使用者

int array1[200];

int val=2;

memset(array1,val,200);

呵呵!4樓對了,很久沒有忘了sizeof(int)*200不過還是做個迴圈比較清晰

for(int i=0;i<200;i++)array1[i]=val;

9樓:悠哉芸

int a[n]=

這樣可以嗎?

10樓:匿名使用者

可一試一下memset函式

(c++)編寫函式模板,從一維陣列中查詢值為給定值的元素。若查詢成功則返回真

11樓:匿名使用者

我寫了個**:

#include

template

t process(t x,t a,t n)//其中x為要查詢的數,a為目標陣列,n為陣列的大小

int main()

;printf("%s\n",process(10,a,5)==true?"true":"false");

return 0;}

12樓:高金山

#include

using namespace std;

template

bool find(t a,int n,t b)

13樓:

//n為陣列元素的個數,m為要查詢的數(double),arr是陣列(double)

bool find()

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語言程式,把兩個陣列內的相應元素相加,結果儲存到陣列內

愛夜 include void add int num1,int num2,int result,int lenth void show array int num,int lenth void main int num2 int num3 5 int lenth 5 add num1,num2,n...