C语言,二维数组输入输出

C语言,二维数组输入输出,第1张

2维数组可以按一维排列 a[j][i] 对应 a[jn+i]
#include <stdioh>
main()
{
int i,j,n,m;
int a, b;
static int v;
scanf("%d %d",&n,&m);
a = (int)malloc(sizeof(int)nm);
b = (int)malloc(sizeof(int)nm);
for (j=0;j<n;j++)
for (i=0;i<m;i++)
{ scanf("%d",&v); a[jm+i]=v; b[in+j]=v;}
for (j=0;j<m;j++) for (i=0;i<n;i++) printf("%d ",b[jn+i]);
for (j=0;j<n;j++) for (i=0;i<m;i++) printf("%d ",a[jm+i]);
}

#include <stdioh>
int main()
{
int a[100][100],b[100][100]; //n,m<100,所以定义100100的数组就够用了
int m,n,i,j;

scanf("%d %d", &n, &m );
for( i=0;i<n;i++ )
{
for(j=0;j<m;j++ )
{
scanf("%d", &a[i][j] );
b[j][i]=a[i][j] ;//交换位置存储
}
}

for( i=0;i<m;i++ ) //b是mn
{
for(j=0;j<n;j++ )
{
printf("%d ", b[i][j] );
}

}
printf("\n");
for( i=0;i<n;i++ )//a是nm
{
for(j=0;j<m;j++ )
{
printf("%d ", a[i][j] );
}

}
printf("\n");
return 0;
}

代码,实现先输入二维数组的行数m和列数n,并再输入mn个整型数据存到动态二维数组中。最后输出所有二维数组的元素值。

int main()

{

intp;//定义二维指针

int m,n;//行数和列数。

int i,j;

scanf("%d%d",&m,&n);//输入行数和列数。

if(m&lt;=0||n&lt;=0)return-1;//行数或列数非法。

p=(int)malloc(sizeof(int)m);//申请一组一维指针空间。

for(i=0;i&lt;m;i++)

p&lt;i&gt;=(int)malloc(sizeof(int)n);//对于每个一维指针,申请一行数据的空间。

for(i=0;i&lt;m;i++)

for(j=0;j&lt;n;j++)

scanf("%d",&p&lt;i&gt;[j]);//输入第i行第j列的数据。其中&p&lt;i&gt;[j]也可以写作p&lt;i&gt;+j或者是(p+i)+j功能相同。

printf("输入的数组为%d行%d列:\n",m,n);

for(i=0;i&lt;m;i++)

{

for(j=0;j&lt;n;j++)//这个循环可以输出一行元素。

printf("%d",p&lt;i&gt;[j]);//输出i行j列的元素。

printf("\n");//每行输入结束加换行符。

}

//释放内存

for(i=0;i&lt;m;i++)

free(p&lt;i&gt;);

free(p);

return 0;

}

扩展资料:


函数:free

功能:与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free(p)这句语句,如果p是NULL指针,那么free对p无论 *** 作多少次都不会出问题。如果p不是NULL指针,那么free对p连续 *** 作两次就会导致程序运行错误。)

用法;void free(voidptr);

程序例:

C/C++代码如下:

#include&lt;stringh&gt;

#include&lt;stdioh&gt;

#include&lt;alloch&gt;//or#include&lt;malloch&gt;

int main(void)

{

charstr;

/allocate memory for string/

str=(char)malloc(10);

/copy"Hello"to string/

strcpy(str,"Hello");

/display string/

printf("String is%s\n",str);

/free memory/

free(str);

str=NULL;

return 0;

}

用一个两重循环就可以了:
#include <stdioh>
void main()
{int a[3][4] = {0}, row, col;

printf("请输入数组元素的值(3行4列): \n");

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

for (col=0; col<4; col++)

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

printf("您输入的数组为:\n");

for (row=0; row<3; row++){//输出当前行的元素

for (col=0; col<4; col++)

printf("%3d", a[row][col]);//换行

printf("\n");

}

}

扩展资料:


C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:

C语言_百度百科

#include "stdioh"
void main ()
{int a[3][3];
int i,j;
for(i=0;i<3 ;i++)
for(j=0;j< 3;j++)
scanf("%d",&a[i][j]);
for(i=0;i< 3;i++)
for(j=0;j< 3;j++)
printf("%5d",a[i][j]);
printf ("\n");
for(i=0;i< 3;i++)
for(j=0;j< 3;j++)
printf("%5d",a[j][i]);
printf ("\n");
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13326892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存