例如一个10x10的矩阵;
#define m 10
#define m 10
int a[m][n];
for(i = 0; i <m; i++){
for(j = 0; j < n; j++)
printf("%d",a[i][j]);
printf("\n");
}#include <stdioh>
int main(void)
{
int a[4][4],i,j,t;
printf("请输入矩阵:\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("输入的矩阵是:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("\n转置后的矩阵是:\n");
for(i=0;i<4;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
return 0;
}#include "stdafxh" //VS 预编译头文件,其他系统请删除
#include<stdioh>
#include<stdlibh>
//VS 2013 否决了 scanf 等函数,为了使用,加上下句。
//其他系统请删除
#pragma warning(disable:4996)
//VS 主函数签名格式。其他系统请改变签名,如:
//int main()
int _tmain(int argc, _TCHAR argv[])
{
int a[4][3], b[4][3];
printf("Please input 3x4 array:\n");
scanf("%d%d%d%d%d%d%d%d%d%d%d%d", &a[0][0], &a[0][1], &a[0][2], &a[1][0], &a[1][1], &a[1][2], &a[2][0], &a[2][1], &a[2][2], &a[3][0], &a[3][1], &a[3][2]);
int i, j;
printf("The orinal array is:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%6d", a[i][j]);
b[j][i] = a[i][j];
}
printf("\n");
}
printf("The transposed array is:\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 3; j++)
{
printf("%6d", b[i][j]);
}
printf("\n");
}
system("pause"); //避免窗口一闪而退
return 0;
}矩阵可以用二维数组存储输出的时候,空白就是空格注意输出的时候对齐问题就行了下面是个例子
#include <stdioh>
int a[3][3]={2,4,6,
0,1,3,
7,0,10};
void main()
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(a[i][j]!=0)
printf("%-3d",a[i][j]);
else
printf(" ");
}
printf("\n");
}
}
说明:
printf("%-3d",a[i][j]);这表示是宽度为3的左对齐
为0的话,则输出3个空格就可以了
希望上面对你有帮助
C++中,输出一个n阶矩阵步骤如下:
1、首先,定义8个整型变量,实现n阶矩阵的计算。
2、接着,定义一个数组变量保存奇数幻方的各数值。
3、输入奇数幻方的阶数。
4、给数组赋初值,初始值为0。
5、计算第一个数1的坐标,保存在变量x和y中。
6、将第一数字1,保存在数组中。
7、用for循环,实现奇数幻方各值位置的计算。
8、用累加的方式,获取奇数幻方的下一个数值。
9、计算奇数幻方下一个值的坐标。
10、如果元素的x坐标小于1,则x值为n;如果元素的y坐标小于1,则y值为n。
11、用if循环处理计算出的坐标已存在的情况,如果存在,则位置变为原数值的下方。
12、将下一个奇数幻方的数值,保存在数组中。
13、最后,输出奇数幻方的每一个数值,每输出一行执行换行。
14、运行程序,输入一个阶数后,电脑就会输出该阶数的矩阵。
先把二维数组对角线上的元素进行赋值,然后进行用二层的循环进行输出,在内循环中输出一行上的元素,内循环结束以后换行,整体就完成了。For i = 0 To 9
For j = 0 To 9
Print a(i, j);
Next j
Next i方法一:典型的传统方法,用二重循环,外层循环控制行,内层循环控制列
i行j列的数组第ii行第jj列可以表示为arr[ii,jj]
程序示例:
using System;
using SystemCollectionsGeneric;
using SystemText;
namespace ArrayDemo
{
//两种遍历二维数组的方法
class Program
{
static void Main(string[] args)
{
int[,] arr = new int[3, 4] {{62,35,62,23},{32,25,34,69},{15,24,26,83}};
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
ConsoleWrite("{0,6}",arr[i,j]);
}
ConsoleWriteLine();
}
ConsoleReadLine();
}
}
}
方法二:用一重循环,有i行j列的二维数组的第ii个元素可以表示为arr[ii/j,ii%j]
示例程序如下:
using System;
using SystemCollectionsGeneric;
using SystemText;
namespace ArrayDemo
{
//两种遍历二维数组的方法
class Program
{
static void Main(string[] args)
{
int[,] arr = new int[3, 4] {{62,35,62,23},{32,25,34,69},{15,24,26,83}};
for(int i=0;i<arrLength;i++)
{
ConsoleWrite("{0,6}",arr[i/4,i%4]);
if ((i + 1) % 4 == 0)
{
ConsoleWriteLine();
}
}
ConsoleReadLine();
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)