简而言之,需要使用0和1创建2d数组,然后每一行从二进制形式解码为十进制(数组是一个[5] [8])。我的想法是使用每一行的指针(将有5个void函数,但我有问题,先停止)。所有我得到的是一些随机数而不是简单的数组。谁能告诉我我的错误在哪里?这里是我的代码:用于解码二进制小数的二维数组
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void VredBajt(int a[5][8],int *pb)
{
for(int i=0;i<5;i++)
{
for(int j=0;j<8;j++)
{
pb=&(a[0][j]);
pb++;
}}}
int main()
{
int a[5][8],i,j,pb;
srand(time(0));
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
a[i][j]=rand()%(2);
}
}
for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<8;j++)
{
printf("%3d",a[i][j]);
}
}
VredBajt(a,&pb);
printf("\n\n %5d",pb);
}
输出是什么?你期望输出是什么?你有没有发现什么可能出错? –
@sftrabbit well pb应当在当前程序中应该是2d数组的第一行(2d数组是由函数随机产生的,所以pb应该是由8个零和1组成的随机数),但它输出类似4534036 ... – user3127589
@sftrabbit是但它应该写成第一行的二进制形式是__________,其十进制值是_________。我的第二个嵌套循环打印阵列 – user3127589