我試圖讓這個程序工作,但我失敗了。我不知道我錯在哪裏。 我得到分段錯誤。這可能是錯誤是由於指針不起作用。二進制分割錯誤轉換
#include <stdio.h>
#include <stdlib.h>
void ConvertBin(int n, int *ris,int *bit);
int main(int argc, char *argv[])
{
int n;
int ris[20];
int bit;
printf("Insert num: "); scanf("%d", &n);
ConvertBin(n,ris,&bit);
for (int i=bit; i!=0; i--)
{
printf("%d", *(ris+i));
}
return 0;
}
void ConvertBin(int n, int *ris, int *bit)
{
int i = 0;
while (n!=0)
{
*(ris+i) = n%2;
n = n/2;
i++;
}
bit = &i;
}
現在確定它可以工作,但不完全。它被執行,但我沒有得到我方面的結果。例如,如果我插入數字3,我將得到15785073521 – Mazzy
這可能是因爲你已經填充了'ris [0 ... bits-1]',但是你正在打印'ris [1 ... bits]'。試試'printf(「%d」,ris [i-1]);'(或者* *(ris + i-1)'如果你喜歡這種形式)。 – Inspired
是的,當然......多麼愚蠢的錯誤......非常感謝你! – Mazzy