二维数组转化为一维数组 25

#include<stdio.h>intmain(){inti,j,k,t,h;inta[4][4],b[16];printf("pleaseinput16numbers... #include <stdio.h>
int main()
{
int i,j,k,t,h;
int a[4][4],b[16];
printf("please in put 16 numbers;");
printf("\n");
scanf("%d",&a[i][j]);
b[h]=a[i][j];
for (h=0;h<16;h++);
if(b[h]>b[h+1])
{
t=b[h],b[h]=b[h+1],b[h+1]=t;}
a[i][j]=b[h];
for (i=0;i<4;i++)
for (j=0;j<4;j++);
printf("%d",a[i][j]);
printf ("\n");
return 0;
我想将上面的程序的二维数组赋予到一维数组上
我的格式可能错了 希望有高手解答 谢谢了
}
展开
 我来答
White_MouseYBZ
2015-05-08 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6568万
展开全部
b[h]=a[i][j];这一句就有问题:h还没有赋值怎么能当下标用?再说了,把二维数组复制到一维数组用一个双循环就可以了:
for(k=i=0;i<4;i++){
for(j=0;j<4;j++){
b[k++]=a[i][j];
}
}
这样就可以了……
慕_贵族
2015-05-08 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:114
采纳率:100%
帮助的人:65.2万
展开全部
首先你的b[h] = a[i][j];这步就是错误的,数组定义怎么可以是未知数,除非动态开辟! 其次,你下面的程序不是二维转换一维! 好像是排序b[]数组思维比较混乱啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2015-05-08 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5659万
展开全部
输入:
for (i=0;i<4;i++) for (j=0;j<4;j++) {
scanf("%d",&a[i][j]); //读
b[ i * 4 + j] = a[i][j]; // 赋给 b
}

for (i=0;i<4;i++) for (j=0;j<4;j++) {
a[i][j] = b[ i * 4 + j]; // 赋给 a
}

输出:
for (i=0;i<4;i++)
{
for (j=0;j<4;j++) printf("%d",a[i][j]); // 你多写的分号要去掉
printf ("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式