本文目錄一覽:
c語言程序,將二維數組轉化為一維數組,然後文件輸出,求救。。。。。原題為第11題。
提供一個最簡單的辦法:設原二維數組是int a[N][M];,再聲明一個與a的元素類型兼容的指針,如int *p;,然後將a強製為(int *)型賦給p,即p=(int *)a;。這樣操作後,用a仍然對原數組能進行二維數組操作,而用p就可按一維數組對原數組進行操作了(相當於將二維數組變成了一維數組p)。驗證代碼如下:
#include “stdio.h”
#define N 3
#define M 4
int main(int argc,char *argv[]){
int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;
p=(int *)a;//將二維數組a變成一維數組p
for(i=0;iN;i++){
for(j=0;jM;printf(“%3d”,a[i][j++]));//用數組名a仍然按二維數組操作
printf(“\n”);
}
printf(“\n”);
for(j=M*N,i=0;ij;printf(“%3d”,p[i++]));//用p則按一維數組操作
printf(“\n”);
return 0;
}
c語言二維數組變成一維數組的通項公式
對二維數組用兩次循環,將其賦值到一維數組就夠了。
舉個例子,二維數組a[N][M],一維數組b[]
編寫主函數部分:
int i,j,k=0;
for(i=0;iN;i++)
for(j=0;jM;j++)
b[k++]=a[i][j];
擴展資料:
反之一維轉二維
#include stdio.h
#include stdlib.h
#define ROW 3
#define COL 2
int main(int argc, char *argv[])
{
int arr1D[] = {1,2,3,4,5,6};
int arr2D[ROW][COL];
int i,j;
//一維維整型數組轉換為二維整型數組
for(i=0;iROW;i++)
{
for(j=0;j2;j++)
{
arr2D[i][j]=arr1D[i*COL+j];
}
}
//二維整型數組列印顯示
for(i=0;iROW;i++)
{
for(j=0;jCOL;j++)
{
printf(“%d “, arr2D[i][j]);
}
printf(“\n”);
}
system(“pause”);
return 0;
}
C語言一個二維數組如何轉換成一個新的一維數組?
當然可以了。
例如:
#include stdio.hvoid main(){int i,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i2;i++)for(j=0;j2;j++){b[k]=a[i][j];k++;}for(k=0;k4;k++)printf(“%d “,b[k]);}
運行結果:
就是將一個2×2的二維數組的值按順序賦給一個一維數組。
原創文章,作者:KSXL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146201.html