c 中兩個陣列,陣列已經排好序了,另陣列如何對應變動元素位置呀

2021-05-23 03:14:33 字數 4646 閱讀 9970

1樓:示申僉

隨著d陣列的排序做改變就是了

#include "stdio.h"

int main()

;int d=;

int i,j,tmp;

for(i=0;i<3;i++)

for(j=i+1;j<4;j++)

if(d[i]>d[j])          //排序同時,讓a陣列跟著做變換

for(i=0;i<4;i++)

printf("%d ",a[i]);

printf("\n");

}3,5,1,2

目的達到。

2樓:匿名使用者

冒泡程式互換的那段**部分,在交換 d[i] d[i+1]的時候順便連 a[i] a[i+1] 也互換了不就行了麼,咋這點還想象不出來啊,就跟 excel 排序似的,你按照a列來排,你不能只讓a列動,那就錯位了。

如何用c++合併兩個已經排好序的陣列為一個陣列

3樓:手機使用者

我想要合

bai併成一個陣列一du定還要按順序重新排一zhi遍,不管以前是否dao排序。要合內並可以採用迴圈賦值的方法吧,原容來兩個陣列假定為a[10],b[10],合併的為c,排好序的a中肯定不重複,直接放入c中,可用:int t;

for(t=0;t<10;t++) c[t]=a[t];對b中元素進行檢驗,若與a不重複,繼續放入。

bool flag=true;

for(int i=0;i<10;i++)陣列元素都放入後對c排序就行了。

4樓:

首先用兩個

來指標a,b分別指向第自一個和第二個有序的陣列,用另一指標pt指向存放答案的陣列;

若(*a)>(*b)則b++,(*pt++)=(*b),否則a++,(*pt++)=(*a);

若a與b都指向已知有序陣列末尾的下一位,演算法結束。

c++問題已知兩個已經有序的陣列,其中陣列內的元素/陣列間的元素均不相同,寫一個函式,使兩個陣列合並後

5樓:匿名使用者

#include

using namespace std;

int m;

int *p;

void merge(int a[15],int b[10])else

}if(i==15)

}else if(j==10)}}

int main()

;int b[10]=;

int n;

merge(a,b);

for(n=0;n<25;n++)

return 0;}

c++找公共元素:求兩個陣列中的公共元素(順序以第一個陣列為準)如果沒有公共元素,則輸出no。

6樓:匿名使用者

#include "stdafx.h"

#include

#include

void sort(int *src, int len);

int main()

while (nn.size() < n);

printf("請輸入第二個陣列的資料個數\n");

int m;

scanf("%d", &m);

printf("請輸入第二個陣列所要包含的資料,請用空格隔開\n");

std::vectormm;

do while (mm.size() < m);

std::vectorjg;

if (n >= m)}}

else}}

if (jg.size() > 0)

}else printf("公共元素為:\nno");

printf("\n");

system("pause");

return 0;

}void sort(int *src, int len)}}剛剛沒注意看你的要求是要按第一個陣列順序排,所以上面的**我寫成了結果以從小大到排的,現在修改一下,按你的要求結果按第一個陣列順序排列,**如下:

#include "stdafx.h"

#include

#include

int main()

while (nn.size() < n);

printf("請輸入第二個陣列的資料個數\n");

int m;

scanf("%d", &m);

printf("請輸入第二個陣列所要包含的資料,請用空格隔開\n");

std::vectormm;

do while (mm.size() < m);

std::vectorjg;

for (int i = 0; i < n; i++)}if (jg.size() > 0)

}else printf("公共元素為:\nno");

printf("\n");

system("pause");

return 0;}

7樓:伎肚惱嗡

void getmin(int array,int arraylen,int out,int outlen)

//如果

zhiout中的數小,則看dao

看下一個out數會不會比這個大}}}

c++排序一個陣列,要求某個元素不動,並且要獲取排列後的元素在排列前的陣列中的位置,不動元素位置不變!

8樓:滄海雄風

很簡單啊

排列前把要不動的元素位置記住

排序時不參與排序

排序完後插入到記錄的元素位置就ok 了啊

自己先想想 不行再來問我 我再給你寫

大半夜的正玩遊戲 真心不想寫**啊

9樓:匿名使用者

樓主給你一個思路,排序的時候可以用兩個for迴圈

當遇到a[index],index值可以讓使用者輸入

就是a[i],i=index的時候,就用continue,這樣程式就不會動這個元素了~!

10樓:匿名使用者

就是一個簡單的排序 大不了多了一個條件而已

11樓:匿名使用者

可以考慮用選擇排序,氣泡排序的思想……

12樓:熾熱紅翼

#include

using namespace std;

int main()}}

cout<<"the sorted numbers:"<

for(i=0;i

cout<

return 0;}

c++中,如果已知兩個陣列,有什麼方法可以知道一個陣列中的某個元素是否存在與另一個陣列? 謝謝。

13樓:匿名使用者

可以,bai用for迴圈

du比如

zhiint main()

return 0;}

14樓:手機使用者

最直接的就是用for迴圈,將你說的那個元素一個個的與另一個陣列的元素比較

c++求解:怎麼把一個陣列排序後讓其他陣列對應的排序 另外請各位推薦個好點的排序方法

15樓:

定義一個結構du體型別zhi

struct stu

再定義結構dao體內

陣列容,要據

總分交換結構體陣列即可

16樓:

那就不要用多個陣列,用一個二維陣列儲存並排序

17樓:幻魅v魘

很簡單,你把總分、平均分、各科成績什麼的做成一個結構體,倒是排序的時候用總分做標準,交換的時候就交換結構體就對了

c++如何把兩個陣列中的元素放在另一個陣列中

18樓:

字串使用

抄strcpy(),strcat();

其他型別使用memcpy();

原型:extern void *memcpy(void *dest, void *src, unsigned int count); 用法:#include

功能:由src所指記憶體

區域複製count個位元組到dest所指記憶體區域。

說明:src和dest所指記憶體區域不能重疊,函式返回指向dest的指標。

注意:與strcpy相比,memcpy並不是遇到'\0'就結束,而是一定會拷貝完n個位元組。

參考資料

19樓:鹹酥餅乾

strcat(sta,st2),將st1陣列和st2陣列連線後賦給st1,然後再用strcmp(st1,st2)函式將st1替換到其他的陣列中

20樓:匿名使用者

你定義的是物件陣列,如果想要刪除的話那就需要呼叫解構函式,這樣處理會比較好,因為你的是陣列,那麼只刪除中間一個物件的話,可能對程式整體有影響,建議用鏈式結構。

21樓:樑__勇

直接使用for迴圈語句拷貝啊。

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

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

c語言找出不是兩個陣列的共同元素

include int not in int num,int a,int length for int i 0 i for i 1 i n i 這兩句錯誤,陣列下標是從0開始的,上面這句會導致程式崩潰 for i 0 i c語言 輸入兩個陣列 從兩個陣列中找出不同的元素 include int ma...

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

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 i...