c语言问题 写一个函数,使给定的一个3x3的二维整型数组转置,即行列互换。

#include<stdio.h>intmain(){intf(intc[3][3]);inta[3][3],i,j;for(i=0;i<=2;i++)for(j=0;j... #include<stdio.h>int main(){int f(int c[3][3]);int a[3][3],i,j;for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);f(a[3][3]);for(i=0;i<=2;i++){for(j=0;j<=2;j++)printf("行列互换后为%d",a[i][j]);printf("\n");}return 0;}int f(int c[3][3]){int i,j,t;for (i=0;i<3;i++)for (j=0;j>=i&&j<3-i;j++){t=c[i][j];c[i][j]=c[j][i];c[j][i]=t;}} 展开
 我来答
问明6E
高粉答主

2019-06-29 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.2万
展开全部

方法一、

#include&lt;stdio.h&gt;

void main(){

void switchArray(int[3][3]);

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

int i,j;

switchArray(array);

return 0;

}

void switchArray(int array[][3]){

int newArray[3][3];

int i,j;

for(i=0;i&lt;3;i++){

for(j=0;j&lt;3;j++){

newArray[j]&lt;i&gt;=array&lt;i&gt;[j];

}

}

for(i=0;i&lt;3;i++){

for(j=0;j&lt;3;j++){

printf("%d",newArray&lt;i&gt;[j]);

}

printf("\n");

}

}

方法二、用指针实现:

#include&lt;stdio.h&gt;

void main(){

void switchArray(int[3][3]);

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

int i,j;

int(*pToArray)[3];

pToArray=array;

switchArray(pToArray);

return 0;

}

void switchArray(int array[][3]){

int newArray[3][3],(*pTArr)[3],(*pTNewArr)[3];

int i,j;

pTArr=array;

pTNewArr=newArray;

for(i=0;i&lt;3;i++){

for(j=0;j&lt;3;j++){

*(*(pTNewArr+j)+i)=*(*(pTArr+i)+j);

}

}

for(i=0;i&lt;3;i++){

for(j=0;j&lt;3;j++){

printf("%d",*(*(pTNewArr+i)+j));

}

printf("\n");

}

}

扩展资料:

用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

紫月开花ig
2019-06-28 · TA获得超过6193个赞
知道大有可为答主
回答量:7479
采纳率:87%
帮助的人:307万
展开全部
#include<stdio.h>
void main()
{
void change(int x[][3],int y);
int x[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
printf("原数组为\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
printf("%3d",x[i][j]);
}
printf("\n");
}
change(x,3);
printf("行列互换后的数组为\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
printf("%3d",x[i][j]);
}
printf("\n");
}
}
void change(int x[][3],int y)
{
int a;
a=x[0][1];
x[0][1]=x[1][0];
x[1][0]=a;
a=x[0][2];
x[0][2]=x[2][0];
x[2][0]=a;
a=x[1][2];
x[1][2]=x[2][1];
x[2][1]=a;
}
追问
能不能帮我看看我的程序哪错了呢 
这个程序是你自己编的还是有答案啊?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式