定义一个10*11二维数组,将数组中数据转换为二进制并转存到另一数组中输出

定义一个10*11二维数组,将数组中数据转换为二进制并转存到另一数组中输出c语言大作业... 定义一个10*11二维数组,将数组中数据转换为二进制并转存到另一数组中输出c语言大作业 展开
 我来答
fallx
2018-05-29 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:723万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define P 3 //请自行修改二维数组行数 10
#define N 3 //请自行修改二给数组列数 11
#define M 64 //按64位机器字和定义二进制长度,可以修改
void change(long n, char a[]){//整数转换成二进制数组返回
int t[M];
int i,k=0;
while(n){
t[k++]=n%2;
n/=2;
}
for(i=0;k>=1;){
a[i++]=(char)(t[--k]+'0');
}
a[i]='\0';
}
int main(){  
int arr[P][N]={0};
int i,j,k=0;
char res[P*N][M];
for(i=0;i!=P;++i){
for(j=0;j!=N;++j){
scanf("%d",&arr[i][j]); //输入二维数组数值
change(arr[i][j],res[k++]);//转换,本质上,二维数组在存储区就是一片连续区域,
//所以,把转换结果放到一个长度为P*N的字符串数组res[]中.res[i]的第二维表示第i字符串长度
}
}
i=0;
printf("二进制输出:\n");//输出
while(i!=k){
printf("%d : %s\n", arr[i/P][i%N],res[i]);//输出格式
//如有不符,请自行调整
++i;
}
return 0;
}

图示是3x3的二维数组转换结果.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式