如何用C语言程序编写“利用函数将给定的3*3二维数组转置”
#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的函数返回其值。
推荐于2018-04-08 · 知道合伙人互联网行家
public class my{
public my(){}
public static void main(String[] args){
String[][] str = {{"1","2","3"},{"4","5","6"},{"7","8","9"}};
my g = new my();
System.out.println("你给定的数组(三行三列)");
g.print(str);
str = g.change(str);
System.out.println("改变后的数组(三行三列)");
g.print(str);
}
//改变结构(从横变成竖)
public String[][] change(String[][] str){
String[][] empty = new String[3][3];
for(int i = 0; i < 3; i ++){
for(int j = 0; j < 3; j ++){
empty[j][i] = str[i][j];
}
}
return empty;
}
//打印数组
public void print(String[][] str){
for(int i = 0; i < 3; i ++){
for(int j = 0; j < 3; j ++){
System.out.print(str[i][j]+" ");
}
System.out.println("");
}
}
}
int b(int a[3][3])
{
int i,j,r;
for(i=0;i<3;i++)
{for(j=i;j<3;j++)
r=a[i][j],a[i][j]=a[j][i],a[j][i]=r;
}
return a[3][3];
}
main()
{int k[3][3]={1,2,3,4,5,6,7,8,9};
int m,n;
b(k);
for(m=0;m<3;m++)
{for(n=0;n<3;n++)
printf("%d ",k[m][n]);
printf("\n");
}
}
第一种
#include<stdio.h>
int main()
{
int a[3][3]; //定义数组
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++)
printf("%d ",a[j][i]);
printf("\n"); //输出数组(直接转置)
}
return 0;
}
第二种
#include<stdio.h>
int main()
{
int a[3][3]; //定义数组
int i,j,t;
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=i;j<3;j++)//转换矩阵
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");//输出数组
}
return 0;
}
当然,如果要实现多组数组,你自己再改变一下程序就行了。希望能帮上你。
int zhuanzhi(int x,int ,int ,int a[3][3]);
int main()
{
int i, j;
int b[3][3] = { { 1,2,3 },{ 4,5,6 } ,{ 7,8,9 } };
int a[3][3] = { {1,2,3}, {4,5,6} ,{7,8,9} };
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
a[i][j]=zhuanzhi(a[i][j],i,j,b);
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%d", a[i][j]);
printf("\n");
}
return 0;
}
int zhuanzhi(int x,int i,int j,int a[3][3])
{
x = a[j][i];
return x;
}