求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽 求大神指点c语言错误。题目和我写的编程如下: 写一个函数使给...

   www.gaoxiao88.net

#include<stdio.h>

int main()

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

printf("原来的数组:
");

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

{

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

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

printf("
");

}

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

for(j=i+1;j<3;j++)

{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}

printf("转置后的数组:
");

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

{

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

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

printf("
");

}

getch();

return 0;

}



#include<stdio.h>
void main()
{ int a[3][3];
int i,j,m=0;
for(i=0;i<3;i++) //对a[3][3]赋值
for(j=0;j<3;j++,m++)
a[i][j]=m;

for(i=0;i<3;i++)//输出原矩阵的值
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("\n");
}
//交换的实现如下
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
//输出转置后的矩阵
printf("\n 转换后的矩阵如下:\n");
for(i=0;i<3;i++)
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("\n");
}

}

/* 函数功能: 对任意row行col列的矩阵转置
函数入口参数: 指向一维整型数组的指针变量a,指向单元存放转置前的矩阵元素
整型变量row,矩阵的行数即二维整型数组的行数
整型变量col,矩阵的列数即二维整型数组的列数
函数出口参数: 指向一维整型数组的指针变量at,指向单元存放转置后的矩阵元素
函数返回值: 无
*/
void convert(int (*a)[COL], int (*at)[ROW], int row, int col)
{
int i, j;

for (i=0; i<row; i++)
{
for (j=0; j<col; j++)
{
*(*(at+j)+i) = *(*(a+i)+j);
}
}
}
另外,虚机团上产品团购,超级便宜

a[3][3]
for(int i=0;i<3;i++)
for(int j=0;j<i;j++)
{ int temp=a[i][j];
a[i][j]=a[j][i]; a[j][i]=temp;
}

建议你和编程老师当面探讨一下这个问题,注意学习一下方法

如何编写一个函数,使给定的一个二维数组(3*3)转置?

#include
void main()
{ int a[3][3];
int i,j,m=0;
for(i=0;i<3;i++) //对a[3][3]赋值
for(j=0;j<3;j++,m++)
a[i][j]=m;

for(i=0;i<3;i++)//输出原矩阵的值
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("
");
}
//交换的实现如下
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
//输出转置后的矩阵
printf("
转换后的矩阵如下:
");
for(i=0;i<3;i++)
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("
");
}

}

对于方阵a[n][ n],转置的实质是交换a[i][j]和a[j][i],主对角线不变,所以二重循环即可完成。
#include const int N = 3;void main() {void transpose(int a[][N],int n);int a[N][N] = {1,2,3,4,5,6,7,8,9};int i,j;printf("转置前:
");for(i = 0; i < N; ++i) {for(j = 0; j < N; ++j)printf("%3d",a[i][j]);printf("
");}transpose(a,N);printf("转置后:
");for(i = 0; i < N; ++i) {for(j = 0; j < N; ++j)printf("%3d",a[i][j]);printf("
");}}void transpose(int a[][N],int n) {int i,j,t;for(i = 0;i < n - 1; ++i) {for (j = i; j < n; ++j) {t = a[i][j];a[i][j] = a[j][i];a[j][i] = t;}}}

相关参考:

...最后m个数变成最前面m个数,写一个函数实现以上功能
代码方法一、include<stdio.h> void exchange(int*,int,int);int main(void){ int m,n,i;printf("input length and number:\\n");scanf("%d%d",&n,&m);int a[n];printf("input array:\\n");for(i=0;i<n;++i)scanf("%d",&a);printf("new array:\\n");exchange(a,n,m);for...

4、设计一个函数,当给定一个整数后,能得到该数的补码(应考虑该整数是正...
实验题目:下面是一个循环结构 的C程序。main(){int i ,j;long sum=0;for(i=1,i<=20,i++) for(j=1;j<=3;j++) sum=sum+(i+1)*(i+1)*(j+2)printf(“sum is :%d\\n”,sum);}[ 分析讨论](1) 将上述程序中的和分别做什么样修改,能使程序按如下要求运行:.不循环;.外循环1次,不进入内...

C语言问题
第15题 include <stdio.h> void main(){ char a[20],b[10];int i=0,j=0;scanf("%s%s",a,b);while (a[i]!='\\0') i=i+1;while (b[j]!='\\0'){ a[i++]=b[j];j=j+1;} a[i]='\\0';printf("%s\\n",a);} ...

电气三班c语言复习题库是什么?
int flag=1,i;for(i=2;i<n\/2&&flag= =1;i++) if(n%i= =0) flag=0;return(flag);}编写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。#include<stdio.h>#define N 3int array[N][N];void main(){void convert(int array[][3]);int i,j;printf(“input array:\\n”);for(i...

C语言编程(程序怎样编写):给定年、月、日,计算该日是该年的第几天,然 ...
\/**程序描述:给定年、月、日,计算该日是该年的第几天,然后计算该日是星期几。*\/#include <stdio.h>int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};int leap_year(int n){ if(n%400==0||(n%4==0 && n%100!=0)) return 1; else return 0;}int cal...

谁会大学C语言?帮我做几道题啊
j,a[3][3],t;for(i=0;i<3;i++)\/*输入数组的每一个数*\/ for(j=0;j<3;j++){printf("plese input to a[%d][%d]",i,j);scanf("%d",&a[i][j]);} for(i=0;i<3;i++)\/*实现交换*\/ for(j=0;j

C语言程序编程
10.include<stdio.h> main(){ int i,x,y,z;printf("所有的水仙花数为:\\n");for(i=100;i<1000;i++){ x=i\/100;y=i\/10%10;z=i%10;if(i==x*x*x+y*y*y+z*z*z)printf("%5d",i);} printf("\\n");}

几道初学者的c语言题目
(1)include "stdio.h"void change(int numsSource[][20], int numsDest[][20]){char i,j,k;for(i=0;i<20;i++)for(j=0;j<20;j++)numsDest[j][i]=numsSource[i][j];}int main(int argv,char *argc[]){int a[20][20],b[20][20],n,i,j;printf("Input n(int 0<n<...

c语言编程问题,求大神相助
include <iostream> include <string> using namespace std;const int n=3;void convert_matrix(int (&a)[n][n]){ for (int i=0;i<n-1;i++){ for (int j=i+1;j<n;j++){ int t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;} } } int main(){ int a[][n]= { ...

C语言问题请教~~
include<cstdio> define N 3 int array[N][N];void convert(int array[][3]) \/*定义转置数组的函数*\/ { int i,j,t;for (i=0;i<N;i++)for (j=i;j<N;j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;} } int main( ){ void convert(int array...

相关评论

  • 韩力693: c语言程序设计 编写一个函数 -
    17129133701: void fun(int m, int n) { for(int i = m; i <= n;++i) { if(!(i%5) && (i%3)) printf("%d ", i); } }

  • 韩力693: c程序语言,函数,求编程实现1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数.如果num是素数,返回该数;否则返回0值. 要求: ... - 作业帮
    17129133701:[答案] 第三个函数#includevoid main(){ int a,b,back; int mulnum(int a,int b); printf("请输入两个整数:"); scanf("%d%d",&a,&b); back=mulnum(a,b); if(back==1) printf("%d is multiple of %d\n",a,b); else if(...

  • 相关话题

    ap在线精英在线最新简短笑话,好笑的段子,搞笑句子,男女朋友校园冷笑话,搞笑歌词对白台词,夫妻搞笑对话,手机流行笑话,逗人笑的动物经典笑话,最新幽默搞笑图文,好笑的视频分享给朋友
    若有事情,请联系电邮
    © <搞笑吧