我嘗試將d陣列的每個整數轉化為二進制數并存入sum陣列,但是發現sum陣列的結果不正確。當我運用printf驗證d陣列的時候發現,這兩個位置的d陣列甚至不一樣。我想問下大家,這段代碼的問題在哪
int tobit(int b)
{
static int a[100];
int i,j,c=0;
for(j=0;j<100;j++)
{
a[j]=0;
}
while(b!=0)
{
i=b%2;
a[c]=i;
c++;
b=b/2;
}
return a;
}
int main()
{
int nb_output=16;
int sum_size=5;
int sum[nb_output][sum_size];
int d[nb_input];
int e;
for(i=0;i<nb_output;i++)
{
printf("%d",d[i]);
}
printf("\n");
for(int i=0;i<nb_output;i++)
{
e=d[i];
printf("%d",d[i]);
int *pr=tobit(e);
for(int q=sum_size;q>0;q--)
{
sum[i][sum_size-q]=pr[q-1];
}
}
printf("\n");
}
前兩列為前后兩個d陣列
uj5u.com熱心網友回復:
為什么兩次輸出的d[i]會不一樣呢?uj5u.com熱心網友回復:
1、d陣列長度為nb_input,而回圈中使用值為nb_output,請核實是否兩個數值相同。2、陣列未初始化,不能直接輸出結果,請留意是否有初始化陳述句。
uj5u.com熱心網友回復:
感謝,陣列長度不對轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25880.html
標籤:C語言
下一篇:codeblocks代碼提示問題
