c語言數組轉置
發布時間: 2023-11-17 15:09:48
A. c程序數組的轉置
你的數組轉置程序,主要有兩個問題,
一 C語言二維數組的參數聲明和傳參不正確
二 二維數組的轉置,只需要以主對角線為軸翻轉一次就行了,
因此,transport函數中for_j循環的終止條件應該為j<i;
改正後的數組轉置C語言程序如下(改動的地方見注釋)
#include<stdio.h>
int main()
{
int a[3][3];
int i,j;
void transport(int a[][3]);//這里把返回值類型int改成void,把a[3][3]改成a[][3]
printf("input:");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf_s("%d",&a[i][j]);//這里建議把scanf_s改成scanf
}
transport(a);//這里把a[3][3]改成a
for(i=0;i<3;i++)
{//這里加大括弧
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf(" ");//這里加一句,換行
}//這里加大括弧
return 0;
}
void transport(int a[][3])//這里把返回值類型int改成void,把a[3][3]改成a[][3]
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)//這里把j<3;改成j<i;
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
熱點內容