类似的,如有帮助,望采纳
请编写函数fun,该函数的功能:将m行n列的二维数组中的数据,按列的顺序依次放到一维数组中。
详细代码:
#include<stdio.h>
void fun(int a[][4], int* b);
int main()
{
int c[20] = { 0 }, f[3][4] = { 1,4,7,10,2,5,8,11,3,6,9,12 },*t=c;
fun(f, c);
while (*t)
{
printf("%d ", *t);
t++;
}
}
void fun(int a[][4], int* b)
{
for (int i = 0;i < 4;i++)
{
for (int j = 0;j < 3;j++)
{
*b = a[j][i];
b++;
}
}
}
c还是c++
//解决如下
#include<stdio.h>
int a[2][10];
int b[20];
int main()
{
a[0][0]=34;//存入
a[0][1]=45;
a[0][2]=78;
a[0][3]=90;
a[0][4]=3;
a[0][5]=40;
a[0][6]=6;
a[0][7]=101;
a[0][8]=1;
a[0][9]=76;
a[1][0]=24;
a[1][1]=20;
a[1][2]=789;
a[1][3]=109;
a[1][4]=35;
a[1][5]=58;
a[1][6]=345;
a[1][7]=15;
a[1][8]=10;
a[1][9]=55;
int cnt=0;
for(int i=0;i<=1;++i)//存一维数组,输出
{
for(int j=0;j<=9;++j)
{
b[cnt++]=a[i][j];
printf("%d ",b[cnt-1]);
}
}
printf("\n");
for(int i=0;i<20;++i)//冒泡排序
{
for(int j=0;j<19;++j)
{
if(b[j]>b[j+1])
{
int temp;
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
for(int i=0;i<20;++i)
{
printf("%d ",b[i]);
}
printf("\n");
return 0;
}
首先,我們需要定義一個二維數組,它有2行10列。我們可以這樣定義它:
int[][] array = new int[2][10];
接下來,我們需要將給定的20個整數存入這個數組中。我們可以這樣做:
int[] numbers = {34, 45, 78, 90, 3, 40, 6101, 1, 76, 24, 20789109, 35, 58345, 1510055};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
array[i][j] = numbers[i * 10 + j];
}
}
現在,我們可以按照題目要求輸出這個二維數組。要輸出它,我們可以這樣做:
// 輸出二維數組(按輸入順序)
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
接下來,我們需要將這個二維數組轉換為一維數組。我們可以這樣做:
int[] array1D = new int[20];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
array1D[i * 10 + j] = array[i][j];
}
}
接下來,我們可以按照題目要求輸出這個一維數組。要輸出它,我們可以這樣做:
// 輸出一維數組
for (int i = 0; i < 20; i++) {
System.out.print(array1D[i] + " ");
}
二维数组转一维数组,只需要强行转换就可以了啊
#include <iostream>
using namespace std;
int main()
{
int a[2][10] = {{34,45,78,90,3,40,6,101,1,76},{24,20,789,109,35,58,345,15,10,55}};
int *p = (int*)a;
int i=0,j,t;
for(i=0;i<20;i++)
cout<<*(p+i)<<" ";
cout<<endl;
for(i=0;i<19;i++)
{
for(j=0;j<19-i;j++)
{
if(*(p+j) < *(p+j+1))
{
t = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = t;
}
}
}
for(i=0;i<20;i++)
cout<<*(p+i)<<" ";
return 0;
}