急~~~请问如何用c语言将给定二维数组加上一个全部为1的外框?

如a[3][3]=234213489用c语言将上数组变成a[5][5]=1111112341121311489111111急~~跪谢~~~... 如a[3][3]=2 3 4
2 1 3
4 8 9
用c语言将上数组变成a[5][5]=1 1 1 1 1
1 2 3 4 1
1 2 1 3 1
1 4 8 9 1
1 1 1 1 1
急~~跪谢~~~
展开
 我来答
kuaidh00
2007-12-20 · TA获得超过713个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:573万
展开全部
我的一个习惯:首先给你一个思路:
(1)你有一个已知二维数组:OldAarry[m][n].(m,n是常量)。
(2)加一个“1”字的外套,就表示会变成新的二维数组:NewArray[m+2][n+2].此时你可以用“1”来初始化整个新数组。
memset(NewArray,"1",sizeof(NewArray));//此函数memset为C库函数,你不会用的话,可查MSDN。
(3) 现在将旧的数组填充进来。如下
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
NewArray[i][j]=OldArray[i-1][j-1];
(4) 现在你可以打印你的新数组NewArray[m+2][n+2]了。
当然,你会打印你的旧数组,就一定会打印新数组了,我就是写具体代码了。

当然了,还有一种笨方法,就是按一类一类的元素一个一个填入,此法效率太低了,不可能用。所以不说了。
回答完毕。
百度网友6c6e22e88
2007-12-20 · 贡献了超过113个回答
知道答主
回答量:113
采纳率:0%
帮助的人:42.2万
展开全部
//算法主要是根据数组判断打印.

#include <stdio.h>
#include <math.h>

#define m 3
#define n 3

main()
{
int a[m][n]={{1,2,3},{4,5,6},{7,8,9}};

for(int i=0;i<=m+1;i++)
{ for(int j=0;j<=n+1;j++)
{
if(i==0||i==m+1)
printf("1");
else if(j==0||j==n+1)
printf("1");
else printf("%d",a[i-1][j-1]);
}
printf("\n");
动物界:所有的生物

无脊椎动物:环节动物门:蚯蚓;线形动物门:蛔虫;软体动物门:蜗牛;节肢动物门:蜻蜓
脊椎动物门:其他

脊椎动物门:
鱼纲:鲫鱼,黄鱼
两栖纲:青蛙
爬行纲:蛇
鸟纲:鹅
哺乳纲:鲸,猩猩

鲫鱼:鲤形目鲤科鲫属
黄鱼:鲈形目石首鱼科黄鱼属

鲸:鲸目(鲸这个名称太笼统,只能分到这)
猩猩:灵长目猩猩科(你这里的猩猩指的是三种还是一种?)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迅捷吠拇丝琶c4
2007-12-20 · 超过36用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:116万
展开全部
void Fun(int **p, int row, int col, int **q)
{
for (int i=0; i<row+2; i++)
{
for (int j=0; j<col+2; j++)
{
if ((i==0)||(j==0)||(i==row+1)||(j==col+1))
*(int *)q = 1;
else
{
*(int *)q = *(int *)p;
p++;
}
q++;
}
}

}
int main()
{
int a[3][3] = {2, 3, 4, 2, 1, 3, 4, 8, 9};
int b[5][5];
memset(b, 0, 5*5*sizeof(int));
Fun((int **)a, 3, 3, (int **)b);
}
//原数组的行和列都定义好了,想重新定义它的行和列示不可能的了。
//我是重新定义一个数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晕鸡
2007-12-20 · 超过28用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:67.2万
展开全部
#include <stdio.h>
main ()
{
int a[3][2]; /*这是原数列,我没赋值,你用的时候注意赋值*/
int b[5][4]; /*新数列*/
int i,j;

for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(i==0||i==4||j==0||j==3) /*4、3由5、4分别减去1得,意在右、下边框*/
b[i][j]=1;
for(i=0;i<5;i++)
{for(j=0;j<4;j++)
printf("%d",b[i][j]);
printf("\n");}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT安全资讯和黑客技术
2007-12-20 · 超过30用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:0
展开全部
//算法主要是根据数组判断打印.

#include <stdio.h>
#include <math.h>

#define m 3
#define n 3

main()
{
int a[m][n]={{1,2,3},{4,5,6},{7,8,9}};

for(int i=0;i<=m+1;i++)
{ for(int j=0;j<=n+1;j++)
{
if(i==0||i==m+1)
printf("1");
else if(j==0||j==n+1)
printf("1");
else printf("%d",a[i-1][j-1]);
}
printf("\n");
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式