如何用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”表示按字符型输出等。后面将专门给予讨论。
非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。
#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;
}
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是变量吗?数组要确定长度的。
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");
}
}
}
#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;
}