當前位置:首頁 » 編程語言 » c語言如何將二維數組並列
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何將二維數組並列

發布時間: 2022-09-10 13:58:08

『壹』 c語言,給定兩個二維數組A和B,其元素按遞增順序排列。請編寫一個程序設計把數組A和B的元素合並到數

#include <stdio.h>
void main()
{
int a[10],b[10],c[20],i,ia,ib,ic;
printf("please input the first array\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
scanf("%d",&b[i]);
printf("\n");
ia=0;ib=0;ic=0;
while(ia<10&&ib<10)
{
if(a[ia]<b[ib])
{
c[ic]=a[ia];
ia++;
}
else{
c[ic]=b[ib];
ib++;
}
ic++;
}
while(ia<10)
{
c[ic]=a[ia];
ia++;
ic++;
}
while(ib<10)
{
c[ic]=b[ib];
ib++;
ic++;
}
for(i=0;i<20;i++)
{
printf("%5d",c[i]);}
}

『貳』 C語言 如何對二維數組進行按列排序

無論是多少維的數組,機內都是一維的,以行優先存放。所以直接降為一維數組排序最方便省事。下面以二維數組為例寫出代碼——

#include"stdio.h"
intmain(intargc,char*argv[]){
intx[3][3]={{9,4,3},{6,2,7},{5,8,1}},i,j,k,*p;
printf("Beforeorderingisasfollows: ");
for(i=0;i<3;i++){
for(j=0;j<3;printf("%2d",x[i][j++]));
printf(" ");
}
for(p=(int*)x,i=0;i<9;i++){//用p=(int*)x將x降為一維數組p,選擇法排序
for(k=i,j=k+1;j<9;j++)
if(p[k]>p[j])
k=j;
if(k!=i)
j=p[k],p[k]=p[i],p[i]=j;
}
printf("Sortedasfollows: ");
for(i=0;i<3;i++){//輸出排序後的二維數組
for(j=0;j<3;printf("%2d",x[i][j++]));
printf(" ");
}
return0;
}

運行結果:

『叄』 C語言 如何對二維數組進行按列排序

在C語言中,二維數組按行存儲,對每一行排序很方便,可以把每一行當成一個一維數組,使用排序函數直接進行排序。

然而對每一列進行排序,就不能直接當成一維數組進行排序。但是仍然可以把第j列a[0...M-1][j]在邏輯上當成一維數組進行排序,下面以使用冒泡排序為例對其排序。

對二維數組按列排序後,進一步展示了如何調用快速排序函數按行進行排序。

程序源碼:

#include<stdio.h>
#include<stdlib.h>


#defineM3
#defineN3

//輸出二維數組的函數
voidprint(inta[][N])
{
inti,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%d",a[i][j]);
}
printf(" ");
}
}

//qsort的cmp函數
intcmp(constvoid*a,constvoid*b)
{
return*(int*)a-*(int*)b;
}

intmain(intargc,char*argv)
{

inta[M][N]={3,2,1,9,8,7,6,5,4};

printf("按列排序前的二維數組是: ");
print(a);
printf(" ");
intj;
for(j=0;j<N;j++)//對每一列進行升序排序
{
//對第j列進行排序
intm,n;
intt;
for(m=M-1;m>0;m--)
{
for(n=0;n<m;n++)
{
if(a[n][j]>a[n+1][j])
{
t=a[n][j];
a[n][j]=a[n+1][j];
a[n+1][j]=t;
}
}
}
}
printf("按列排序後二維數組變為: ");
print(a);
printf(" ");

//對按列排序後的二維數組按行升序排序(調用快速排序函數)

inti;
for(i=0;i<M;i++)
{
qsort(a[i],N,sizeof(a[i][0]),cmp);
}

printf("按列排序後再按行排序後二維數組變為: ");
print(a);
printf(" ");
system("pause");
return0;
}

編譯運行後的結果如下:

『肆』 求C語言二維數組元素排列組合

只是0,1還好辦,要是0-9,或者更多數字就不好弄,
你這個其實跟數組是一維或者二維關系不大,3*3二維跟9個的一維,組合數結果是一樣的
這個用到綁定插入法,先將少的數字綁定,3個0,3個相對6個少點,
1.先將3個0,看成一個整體。插入到6個1中間。共7種插法,
2.2個0看成一個整體,插入,7種,在插入另外一個0,這是個這個0不能查到0的前,或者後,會跟之前的重復,6種,6*7=42種插法,
3.分開插,0不能相鄰,101010/010101整體,向剩下的111裡面查去,共2*4=8種

『伍』 C語言怎麼並列列印兩個的二維數組

#include<stdio.h>

intmain()

{ inta[3][3]={1,2,3,4,5,6,7,8,9},b[3][3]={10,20,30,40,50,60,70,80,90};

inti,j;

printf("%-13s%-10s ","A數組:","B數組:");

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

{

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

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

printf("");

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

printf("%3d",b[i][j]);

printf(" ");

}

return0;

}

『陸』 C語言二維數組如何交換兩行或者兩列

代碼:

#include<stdio.h>

int main()

{

int i, j, a[2][3] = { {1,2,3},{4,5,6} },b[3][2];

printf("array a: ");

for (i = 0; i <=1; i++)//處理a數組中的一行中各元素

{

for (j = 0; j <= 2; j++)//處理a數組中的某一列元素

{

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

b[j][i] = a[i][j];

}

printf(" ");

}

printf("array b: ");

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

{

for (j = 0; j <=1; j++)

{

printf("%5d", b[i][j]);

}

printf(" ");

}

return 0;

}

(6)c語言如何將二維數組並列擴展閱讀:

1、return在函數中的作用

我們如果將函數看做一個加工廠,參數就是我們向加工廠投入的原料,具體的函數功能實際上就是加工的過程,而return語句代表返回值,就是加工廠在實現加工之後給「投資人」的成品。

2、return語句的特點

a、在函數當中,遇到return語句之後就意味著函數運行的結束,在此之後的代碼是不運行的。

b、它不支持任何運算也沒有任何內建方法,和任何其他的數據類型比較是否相等時永遠返回false,也可以將None賦值給任何變數。

c、執行到return語句時,會退出函數,return之後的語句不再執行。但將return語句放在try語句塊中,是個例外。

3、return的默認值:return函數默認的返回值為undefined。

『柒』 C語言中如何將一個3×3的二維數組,行列互換,並賦值到另一個二維數組

#include<stdio.h>


intmain(void)


{


intarray[3][3]={1,2,3,4,5,6,7,8,9};


intarray_1[3][3];


printf("原始數組: ");


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


for(intj=0;j<3;j++){


array_1[j][i]=array[i][j];


printf("%d ",array[i][j]);


}


printf(" ");


}


printf("轉換後數組: ");


for(intm=0;m<3;m++){


for(intn=0;n<3;n++){


printf("%d ",array_1[m][n]);


}


printf(" ");


}


return0;


}