如何用C语言程序编写“利用函数将给定的3*3二维数组转置”

如何用C语言程序编写“利用函数将给定的3*3二维数组转置”,第1张

#include<iostream>

usingnamespacestd;

void zhuang zhi(int a[3][3])

{int m,n,i;

for(m=0;m<2;m++)

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

{if(m!=1||i!=0)

{n=a[i][m];

a[i][m]=a[m][i];

a[m][i]=n;

int main()

inta[3][3];

inti,j;

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

for(j=0;j<3;j++)

cin>>a[i][j];

zhuang zhi(a);

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

for(j=0;j<3;j++)

cout<<a[i][j]<<"";

cout<<endl;

return0;

运行效果:

扩展资料:

return语句有以下形式:

return;//不带返回值的return语句

return 0;//带返回值的return语句,或者返回一个变量或一个函数

return 1//表示函数异常结束

不带返回值的return语句用于,中断返回值为void类型的函数的执行,而带返回值的return则不行。

#include<iostream>

using namespace std;

void f(){

cout<<"begin"<<endl;

return 0;此处有问题,此时return;的作用相当于break;用于中断循环的作用。所以不该返回某个具体的值。

cout<<"end"<<endl;

}

int main(){

f();

return 0;

}

将return 0;换为return;后,运行成功:

总结:

return;的作用相当于break;用于中断循环的作用;return 0;则是return的另一种用法,专用于返回值非void的函数返回其值。

#include<stdioh> 

int main()

{

int a[3][3],sum=0;

int i,j; 

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

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

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

for(j=0;j<3;j++)

if(i==j||(i+j==2))

sum=sum+a[i][j];    

printf("sum=%d\n",sum);

return 0;

}

扩展资料

fun()只是一个函数名称,括号内的函数体的功能取决于填写的内容。比如:

void fun()

{

printf("这个fun()函数的功能就是输出文字\n")

}

void fun()

{

int a,b,c;

a=7;

b=8;

c=a+b;

printf("这个fun()函数的功能就是计算a+b的值。c=%d\n",c);

}

参考资料:

- fun函数

C语言数组定义,中括号中必须是一个常量,而不能是一个变量;

数组不能重名的;

转置函数参数列表中没有要转置的数组,就相当于没有 *** 作对象, *** 作对象是不会有反应的,在里面使用要转置的数组也是行不通的;

核心语句也错了:

应该是:

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

for(j=0;j<i;j++) //这里控制条件是j<i;而不应该是j<3;

//否则调换之后再调换相当于没有调换。

// 就是下三角与上三角交换,当然,对角线不用参与;

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

#include<stdioh>

void fun(int a[3][3])

{

int x,y,m,n,b[3][3];

for( x=0;x<3;x++) 

{  

for( y=0;y<3;y++) 

{   

b[y][3-x-1]=a[x][y]; 

printf("打印置换后的二维数组\n");

for( m=0;m<3;m++) 

{  

for( n=0;n<3;n++) 

{   

printf("%d ",b[m][n]);

}  

printf("\n");

}

void main()

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

int i,j;

printf("打印置换前的二维数组\n");

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

{  

for( j=0;j<3;j++)

{   

printf("%d ",a[i][j]);

}  

printf("\n");

}

fun(a);

}

打印置换前的二维数组

1 2 3

4 5 6

7 8 9

打印置换后的二维数组

7 4 1

8 5 2

9 6 3

Press any key to continue

#include <stdioh>

int main()

{

int a[3][3], b, c, d;

for (b = 0; b<3; b++)

for (c = 0; c<3; c++)

scanf("%d",&a[b][c]);

printf("\n");

for (b = 0; b<3; b++)

for (c = b+1; c<3; c++)

{

d = a[b][c];

a[b][c] = a[c][b];

a[c][b] = d;

}

for (b = 0; b<3; b++)

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

printf("%d ",a[b][c]);

printf("\n");

}

return 0;

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13494085.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存