私は、整数の配列を取り、ベース16などの目的のベースに変換できるコードを書いています。可変長配列が変換されないのはなぜですか?
何らかの理由で、端末はプログラムを介して、その方法を行い、ここで
"変換数="
を出力私のコードです:あなたは
#include <stdio.h>
#include <cs50.h>
int convertedNumber[64];
int base;
int digit = 0;
void getNumberAndBase(void) {
int size;
printf("How many numbers to be converted??\n");
size = GetInt();
int array[size];
for (int i = 0; i < size; i++) {
printf("Number to be converted?\n");
array[i] = GetInt();
}
printf("Base?\n");
do {
base = GetInt();
if (base < 2 || base > 16) {
printf("Bad base - must be between 2 and 16. Try again!\n");
}
} while (base < 2 || base > 16);
void convertNumber(int size, int array[size]);
}
void convertNumber(int size, int numberToConvert[size]) {
for (int i = 0; i < size; i++) {
do {
convertedNumber[digit] = numberToConvert[i] % base;
digit++;
numberToConvert[i] /= base;
} while (numberToConvert[i] != 0);
}
}
void displayConvertedNumber(void) {
const char baseDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int nextDigit;
printf("Converted number = ");
for (--digit; digit >= 0; --digit) {
nextDigit = convertedNumber[digit];
printf("%c", baseDigits[nextDigit]);
}
printf("\n");
}
int main(void) {
void getNumberAndBase(void), displayConvertedNumber(void);
getNumberAndBase();
displayConvertedNumber();
return 0;
}
'無効convertNumber(int型のサイズ、int配列[サイズ]);'あなたは、一貫してあなたのコードをフォーマットしてください機能 –
を_call_どのようにそれはないですが、それは読みにくいです。ありがとう – user3078414
代わりに、 '(void)convertNumber(int size、int array [size]);' – babon