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

c語言二維數組3x3

發布時間: 2022-08-29 06:24:00

c語言實現3x3的二維數組轉置,哪裡不對

主函數中調用在z(),函數的時候不用帶void ,在void z(a[][])形參,至少得寫出來列的數目,

㈡ 用C語言編程:求一個3x3的整型二維數組對角線元素之和。

int main(void)
{
int a[3][3],i,j,sum1=0,sum2=0;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
sum1=a[0][0]+a[1][1]+a[2][2];
sum2=a[0][2]+a[1][1]+a[2][0];
printf("%d,%d",sum1,sum2);
getchar();
getchar();
return 0;

}

㈢ C語言:定義一個3X3的二維數組,輸入9個數組,然後計算每一行的和,以及每一列的和。

#include<stdio.h>
intmain()
{inti,j,a[4][4]={0};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{a[i][j]=3*i+j+1;
a[i][3]+=a[i][j];
a[3][j]+=a[i][j];
}
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{printf("%3d",a[i][j]);
if(i==3&&j==2)break;
}
printf(" ");
}
return0;
}

㈣ 用c語言任意輸入一個3行3列的二維數組,求對角元素之和

#include<stdio.h>

#defineM3
#defineN3

voidcreateMatrix(intmatrix[M][N],intm,intn){/*創建矩陣*/
inti,j;
printf("開始輸入矩陣內容(%d行%d列) ",m,n);
for(i=0;i<m;i++){
printf("輸入第%d行的%d個元素:",i+1,n);
for(j=0;j<n;j++)
scanf("%d",&matrix[i][j]);
}
}

voidprintMatrix(intmatrix[M][N],intm,intn){/*列印矩陣*/
inti,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
printf("%d ",matrix[i][j]);
printf(" ");
}
}

voidprintMatrix_diagonal(intmatrix[M][N],intm,intn){/*列印對角線元素和*/
inti,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(i==j||i+j==M-1)
printf("%d ",matrix[i][j]);
else
printf(" ");
printf(" ");
}
}

intdiagonalSum(intmatrix[M][N],intm,intn){/*求對角線元素和*/
inti,j,sum=0;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(i==j||i+j==M-1)
sum+=matrix[i][j];
}
returnsum;
}

intmain(void){
intmatrix[M][N];
createMatrix(matrix,M,N);
printf("====================================================== ");
printf("您輸入的矩陣為: ");
printMatrix(matrix,M,N);
printf("對角線元素為: ");
printMatrix_diagonal(matrix,M,N);
printf("對角線元素之和為: ");
printf("%d ",diagonalSum(matrix,M,N));
return0;
}

㈤ 用C語言編寫一個3x3的二維數組,求對角線的和

這個很簡單啊 3x3的二維數組 你自己定義為 int A[x][y]; (你這題x=3,y=3;)
對角線你自己看下 是不是有主對角線和副的? 主的好求 在循環里 只有當x = y的時候就把他們的值相加 最後就是主對角線的值
副對角線的話你看下 第一個是不是 x=1 y=2 第二個x=2 y=2 第三個x=2 y=1 也是在循環里用個判斷寫下就OK了
最後的結果就是兩對角線的和了 你好好做下看看

㈥ c語言,二維數組倒置

# include <stdio.h>
int main()//
{
int i,j,temp;
int a[3][3];
int (*p)[3];
//************************************************************************
//*********************輸入二維數組*********************************
printf("請輸入你喜歡的9個數字作為3x3二維數組:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
//********************************************************************
//**********************列印輸入的二維數組***********************
p=a;
printf("您剛才輸入的3x3二維數組是:\n");
for(i=0;i<3;i++)
{

for(j=0;j<3;j++)
printf(" %5d",a[i][j]);
printf("\n");
}
printf("\n"); printf("\n"); printf("\n"); printf("\n");
//*********************************************************************
//*************************二維數組倒置******************************
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)//這里換了兩次.等於沒換
temp=a[j][i],
a[j][i]=a[i][j],
a[i][j]=temp;
// temp=*(*(p+i)+j),
// *(*(p+i)+j)=*(*(p+j)+i);
// *(*(p+j)+i)=temp;
}

//******************************************************************
//*************************輸出倒置後的數組*************************
printf("倒置後的3x3二維數組是:\n");

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

for(j=0;j<3;j++)
printf(" %5d",*(*(p+i)+j));
printf("\n");
}
return 0;//
}
//**********************程序完畢****************************************

㈦ 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;


}

㈧ 用C語言定義一個3*3的二維數組,編寫一個程序查找並輸出此二

#include<stdio.h>
intmain()
{
intnums[3][3]={{8,9,3},{6,5,4},{2,1,9}};
inti,j,cloSum[3]={0},rowSum[3]={0},*min=&nums[0][0];
doublerowAve[3],cloAve[3];
printf("原數組: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d",nums[i][j]);
if(*min>nums[i][j])
min=&nums[i][j];
cloSum[i]=cloSum[i]+nums[j][i];
rowSum[i]=rowSum[i]+nums[i][j];
}
printf(" ");
}
printf("二維數組中最小值的下標:%d ",min-&nums[0][0]);
for(i=0;i<3;i++)
{
cloAve[i]=(double)cloSum[i]/3;
rowAve[i]=(double)rowSum[i]/3;
printf("第%d行的平均值:%lf ",i+1,rowAve[i]);
printf("第%d列的平均值:%lf ",i+1,cloAve[i]);
}
return0;
}

㈨ c語言中怎樣輸入一個3*3的二維數組存儲到文件中在文件中按順序輸出二維數組

#include<stdio.h>
#include<time.h>
#defineN3//N定義數組的大小
voidShellSort(inta[],intn)
//直接插入排序:對含有n個整數的數組a[]進行從小到大排序
{
inti,j,t;
for(i=1;i<n;i++)
for(j=i-1;j>=0&&a[j]>a[j+1];j--)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}

intmain()
{
inti;
inta[N*N]={0},b[N*N]={0};//二維數組a[n][n]在內存中就是以連續的一片空間存放的
//本質上就是一個n*n大小的一維數組,故此處直接採用一維數組存取
FILE*fp,*fp2;
srand((unsignedint)time(NULL));//初始化隨機數種子
for(i=0;i<N*N;i++)
{
a[i]=rand()%100+1;//隨機生成100以內的整數,為了方便採用隨機數
//實際上可以採取手工輸入
//a[i]=scanf("%d");
printf("%3d",a[i]);//輸出該數
if(i>0&&(i+1)%N==0)//按n*n行格式斷行
printf(" ");

}
ShellSort(a,N*N);//數據排序
if((fp=fopen("d:\tmp\abc.txt","w"))==NULL)//請自行更改文件存放位置及文件名
{
printf("打開文件出錯. ");
return0;
}
printf("排序結果寫入文件 ");
for(i=0;i<N*N;i++)
{

printf("%3d",a[i]);////一起輸出排序結果
fprintf(fp,"%3d",a[i]);//寫到文件
if(i>0&&(i+1)%N==0)
{
fprintf(fp," ");//換行
printf(" ");
}

}

fclose(fp);

printf("讀取文件 ");
if((fp2=fopen("d:\tmp\abc.txt","r"))==NULL)
{
printf("打開文件出錯. ");
return0;
}
for(i=0;i<N*N;i++)
{
fscanf(fp2,"%d",&b[i]);
printf("%3d",b[i]);
if(i>0&&(i+1)%N==0)//換行
printf(" ");

}

fclose(fp2);
return0;

}

㈩ C語言,如何在子函數中寫一個3*3二維數組,給主函數調用!!

在子函數申請二維數組,主函數使用,可以用動態申請。

方法不止一種,我這里用指針的指針實現二維數組。

二維數組除了行列,本身地址也是連續的,從第一行第一列的元素地址++,可以取出所有元素。所以我這里先申請了完整的連續地址。

#include<stdio.h>
#include<malloc.h>
int**sr(void)
{
inti,j;
int*memory=(int*)malloc(sizeof(int)*9);//申請完整的連續內存地址3*3
int**arr=(int**)malloc(sizeof(int*)*3);//申請二維數組行指針數組(也就是二維數組)
if(!memory||!arr){
printf("內存申請錯誤! ");returnNULL;}
for(i=0,j=0;i<9;i+=3)//將連續地址按列數,取出每行首地址,賦值給二維數組元素
arr[j++]=&memory[i];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&arr[i][j]);
returnarr;
}
intmain(void)
{
inti,j,**arr=sr();
if(!arr)
return1;
printf("---主函數調用子函數定義的二維數組--- ");
for(i=0;i<3;i++,printf(" "))
for(j=0;j<3;j++)
printf("%d",arr[i][j]);
printf(" ---實現二維數組地址連續性--- ");
int*p=&arr[0][0];
while(p<=&arr[2][2])
printf("%d",*p++);
return0;
}