나는 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 배열 [크기]); ' – babon