yhkn.net
当前位置:首页 >> 写一个函数使给定的3 4 >>

写一个函数使给定的3 4

void trans(int *matrix[][]) { for(int i=0;i for(int j=0;j { int t=matrix[i][j]; matrix[i][j]=matrix[j][i]; matrix[j][i]=t; } }对一个矩阵进行转置,只需要对其下三角部分进行处理,即第一行不处理,第二行处理第一个,第三行处理第1和第2个,以此类推.

你这个是转置吗?先输入一个矩阵A m*n阶的,转置里面应先初始化一个矩阵B n*m的 记得要先初始化哦!然后利用for循环两层i,j for i=0:n-1 for j=0:m-1 B(i,j)=B(j,i); 然后就行了试试吧

#include <stdio.h>#include <stdlib.h> int main() { int b[3][3]={{1,2,3},{5,6,7},{8,9,10}},a[3][3]; int i,j; printf("原数组是:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5.0f",b[i][j]); putchar('\n'); } for(i=0;i<3;i++) for(j=0;j<3;j++)a[j][i]=b[i][j]; printf("

void convert(int array[][3]) { int i,j,t; for(i=0;i<N;i++) for(j=i+1;j<N;j++) { t=array[i][j]; //这里我想用另外一个数组来存放,代码该怎么改呢?array[i][j]=array[j][i]; array[j][i]=t; } } void convert(int array[][3]) { int b[][3]; int i,j,t; for(i=0;i<N;i++) for(j=i+1;j<N;j++) { b[

凑和着用吧!#include<stdio.h>#define N 3 int main() { void transposition(int arr[][N]); int a[N][N],i,j; printf("请输入一个3*3的二维整型数组\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) scanf("%d",&a[i][j]); } printf("转置前:\n"); for(i=0;i<N;i++) {

array[][]要初始化 即给定数组长度 比如array[3][3] clrscr();这一句没用到,而且没定义 getch()未定义,而且这一句也没用 下面是我改正后的程序#include <stdio.h> void main() { int value(int array[3][3]); int a[3][3]; int i,j; for(i=0;i<3;i++) { for(j=0;j

有两处错误,1处语法错误,1处逻辑错误 sort(a[3][3]);修改成sort(a);就可以 但是你运行一下,你可以发现他没有转置 因为 for(i=0;i<3;i++) for(j=0;j<3;j++)把所有的元素都循环了,例如a[1][2]对换了,然后a[2][1]也对换了,实际上没有作用了就,你可以改成for(i=0;i<3;i++) for(j=i;j<3;j++) 这样就不会重复对换,就可以实现转置的目的了

函数不能嵌套定义的,你的函数定义应该放在主函数的外面.还有函数参数 int a[3][3], 这个改为int a[][3] 因为二维数组的第一维是不用指定的.改成这样比较好一些

/* 函数功能: 对任意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

#include<stdio.h>void main(){ int change(int a[3][3]); int a[3][3],i,j; printf("请输入9个数字:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); a[3][3]=change(a); printf("转换后:\n"); for(i=0;i<3;i++) for(j=1;j<=3;j++) { printf("%d\t",

网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com