gcc 編譯測試通過
在蘇尼特右等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,蘇尼特右網(wǎng)站建設(shè)費(fèi)用合理。
#include?stdlib.h
#include?stdio.h
#define?N?10
int?*?copyArray(int?*source,?int?n)
{
int?*dest;
int?i;
//?分配空間
dest?=?(int*)malloc(n?*?sizeof(int));
//?順序復(fù)制
for(i?=?0;i??n;i?++)
dest[i]?=?source[i];
return?dest;
}
int?*copyReverse(int?*source,?int?n)
{
int?*dest;
int?i;
//?分配空間
dest?=?(int*)malloc(n?*?sizeof(int));
//?逆序復(fù)制
for(i?=?0;i??n;i?++)
dest[n?-?i?-?1]?=?source[i];
return?dest;
}
int?*copyOrder(int?*source,?int?n)
{
int?*dest;
int?i,j,minIndex;
//?分配空間
dest?=?(int*)malloc(n?*?sizeof(int));
//?順序復(fù)制
for(i?=?0;i??n;i?++)
dest[i]?=?source[i];
//?對數(shù)組選擇排序
for(i?=?0;i??n?-?1;i?++)
{
minIndex?=?i;
for(j?=?i;j??n;j?++)
{
//?選擇本次最小下標(biāo)(如果需要降序,將??改為??,重新編譯)
if(dest[j]??dest[minIndex])
minIndex?=?j;
//?交換元素
if(minIndex?!=?i)
{
dest[i]?=?dest[i]?^?dest[minIndex];
dest[minIndex]?=?dest[i]?^?dest[minIndex];
dest[i]?=?dest[i]?^?dest[minIndex];
}
}
}
return?dest;
}
int?main()
{
int?test[N]?=?{2,4,1,0,9,5,6,8,7,3};
int?*origin,*reverse,*order;
int?i;
origin?=?copyArray(test,N);
reverse?=?copyReverse(test,N);
order?=?copyOrder(test,N);
for(i?=?0;?i??N;?i?++)
printf("%d?",origin[i]);
printf("\n");
for(i?=?0;?i??N;?i?++)
printf("%d?",reverse[i]);
printf("\n");
for(i?=?0;?i??N;?i?++)
printf("%d?",order[i]);
printf("\n");
free(origin);
free(reverse);
free(order);
return?0;
}
有兩種常用的方法。
1 對數(shù)組各個(gè)維循環(huán),遍歷每個(gè)元素,并將其賦值到目標(biāo)數(shù)組的對應(yīng)位置上。
缺點(diǎn):代碼相對復(fù)雜。
優(yōu)點(diǎn):可以不不同大小和形式的數(shù)組進(jìn)行交叉復(fù)制。
2 利用C語言中多維數(shù)組元素存儲連續(xù)性,使用memcpy函數(shù)整體復(fù)制。
缺點(diǎn):僅使用源數(shù)組要復(fù)制的數(shù)據(jù)是連續(xù)的,同時(shí)在目標(biāo)數(shù)組中以同樣順序連續(xù)復(fù)制的情況。
優(yōu)點(diǎn):代碼簡單,一個(gè)函數(shù)調(diào)用即可完成賦值。相對第一種,執(zhí)行效率略高。
#include?stdio.h
#includestring.h
int?main()
{
char?ch[40];
char?c[20]={"asdfgh"};
strcpy(ch,c);
printf("%s\n",ch);
}