c言語でこちらのコードを実行した際に正しく実行されない理由を教えてください。
c言語でこちらのコードを実行した際に正しく実行されない理由を教えてください。 実行したい内容は、0~65535の整数値を入力し、それの二2進数を16桁で表記を出力するというものです。何を入力しても、0000000000000000と出力されます。 #include<stdio.h> int beki(int, int); int main() { int a, b=0, array[16]; printf("input number :"); scanf("%d", &a); for (b=0; b<=15; b++) { array[b] = a/(beki(2, (15-b))); printf("%d", array[b]); a = a%(beki(2, (15-b))); } printf("\n"); return 0; } int beki(int x, int y){ int z=1, ans; for (z=1; z==y; z++) { ans = ans*x; } return ans; }
C言語関連・45閲覧
ベストアンサー
かな…? int beki(int x, int y) { int z = 1, ans = 1; for (z = 1; z <= y; z++) { ans = ans * x; } return ans; }
質問者からのお礼コメント
ありがとうございます。ここを変えるだけで正常に動きました。他の方も様々なアドバイスありがとうございます。
お礼日時:5/24 22:30