C语言中的二维数组的赋值,输入输出怎么用

 我来答
问明6E
高粉答主

2019-05-25 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.4万
展开全部

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

int main()

{

int**p;//定义二维指针。

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

int i,j;

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

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

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

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

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

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

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

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

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

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

{

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

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

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

}

//释放内存

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

free(p<i>);

free(p);

return 0;

}

扩展资料:

函数:free

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

用法;void free(void*ptr);

程序例:

C/C++代码如下:

#include<string.h>

#include<stdio.h>

#include<alloc.h>//or#include<malloc.h>

int main(void)

{

char*str;

/*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;

}

TableDI
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT... 点击进入详情页
本回答由TableDI提供
天云小店
推荐于2017-09-17 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:757万
展开全部

二维数组的赋值与输出,都需要对各个元素进行逐个输出,可以用双重for循环输出全部元素。


举例如下:

int a[2][4];
int i;
// 对二维数组a进行赋值
for(i=0; i<2; i++)     // 行
    for(j=0; j<4; j++)   // 列
        a[i][j] = i+j;  // 对二维数组a进行赋值为行号与列号之和
        
// 输出二维数组a的各元素值
for(i=0; i<2; i++)     // 行
{
    for(j=0; j<4; j++)   // 列
        printf("%d ", a[i][j];   // 输出二维数组a的各元素值
    printf("\n");  // 每输出一行就回车换行
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cb8d0e198
2010-12-28 · TA获得超过1198个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:775万
展开全部
只能逐个去输入和输出~~~没有捷径的,一个采用循环语句去操作,以减少代码的体积;
如楼上给出的程序:
main()
{ int i,j,a[10][10];
for(i=0;i<10;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
for(i=0;i<10;i++)
{ for(j=0;j<10;j++)
printf("%d ",a[i][j]);
printf("\n"); }
}
用下标的方法逐个进行输入和输出操作;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mdoom
推荐于2016-05-04 · TA获得超过2923个赞
知道大有可为答主
回答量:1370
采纳率:0%
帮助的人:680万
展开全部
main()
{ int i,j,a[10][10];
for(i=0;i<10;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
for(i=0;i<10;i++)
{ for(j=0;j<10;j++)
printf("%d ",a[i][j]);
printf("\n"); }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-03-21
引用天云一号的回答:
二维数组的赋值与输出,都需要对各个元素进行逐个输出,可以用双重for循环输出全部元素。

举例如下:
int a[2][4];int i;// 对二维数组a进行赋值for(i=0; i<2; i++) // 行 for(j=0; j<4; j++) // 列 a[i][j] = i+j; // 对二维数组a进行赋值为行号与列号之和 // 输出二维数组a的各元素值for(i=0; i<2; i++) // 行{ for(j=0; j<4; j++) // 列 printf("%d ", a[i][j]; // 输出二维数组a的各元素值 printf("\n"); // 每输出一行就回车换行}
展开全部
第二行没有声明 "j";
第十二行括号缺少一半;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式