如何用C语言编一个程序,输入一个二维数组,然后以一个矩阵的方式输出。

如何用C语言编一个程序,输入一个二维数组,然后以一个矩阵的方式输出。
比如:输入一个2*3的矩阵,可以输入:1 2 3 4 5 6
然后输出形式要求是这种形式:
1 2 3
4 5 6
就是以一个2*3矩阵输出。
尽量用到指针呀。

#include<stdio.h>

void main(){

int array[3][3], (*pArr)[3], *p[3], i, j, sum;

srand(time(NULL));

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

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

array[i][j] = rand()%100+0;

pArr = array;

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

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

printf("%d\t", pArr[i][j]);

if(j == 2){

printf("\n");

}

}

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

p[i] = array[i];

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

sum = 0;

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

sum += p[i][j];

}

printf("第%d行的和是%d\n", i+1, sum);

}

}

扩展资料:

1、printf命令的作用是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>)。

printf()是C语言标准库函数,在 stdio.h 中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

2、printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。printf函数调用的一般形式为:printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式。

格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如“%d”表示按十进制整型输出,“%ld”表示按十进制长整型输出,“%C”表示按字符型输出等。后面将专门给予讨论。

非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-23

#include <stdio.h>

#include <stdlib.h>

int main()

{

    int *a;

    int n,m,i,j,len;

    printf("请输入矩阵行数:");

    scanf("%d",&n);

    printf("请输入矩阵列数:");

    scanf("%d",&m);

    len = m * n;

    a = NULL;

    a = (int *)malloc(sizeof(len));

    printf("输入矩阵元素:"); 

    for(i = 0;i < len;i++){

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

    }

    for(i = 0;i < n;i++){

        for(j = 0;j < m-1;j++){

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

        }

        printf("%d\n",a[n*i+j]);

    }

    return 0;

}

第2个回答  推荐于2018-03-07
#include<stdio.h>
void main()
{
int i,j,a[2][3],*p;
for(i=0;i<2;i++)
{ printf("输入3个数:");
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
p=a;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{ printf("%d ",*(p+i)+j);
if((j+1)%3==0)printf("\n");
}
}
}追问

换成一个m*n的矩阵怎么写?

追答

m,n是变量吗?数组要确定长度的。

本回答被提问者和网友采纳
第3个回答  2012-06-21
#include<stream.h>
void main()
{
int i,j,a[2][3],*p;
for(i=0;i<2;i++)
{ printf("输入3个数:");
for(j=0;j<3;j++)
p=a;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{ printf("%d ",*(p+i)+j);
if((j+1)%3==0)printf("\n");
}
}
}
第4个回答  2012-06-21
#include <stdio.h>
#define MAX 100

int main ()
{
int i, j;
int m, n;
int a[MAX];

printf ("Please input the line:");
scanf ("%d", &m);
printf ("Please input the row:");
scanf ("%d", &n);
printf ("Please input the data:");
for (i = 0; i < m * n; i++)
{
scanf ("%d", &a[i]);
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf ("%d\t", a[i*m+j]);
}
printf ("\n");
}
getch ();
return 0;
}