У меня есть задание написать программу, которая преобразует десятичные числа в двоичные числа на языке программирования C.Выход двоичного числа в C
Это код, который я написал:
#include <stdio.h>
#define MAX_LEN 1000
void translate_dec_bin(char s[]){
unsigned int decNum;
sscanf_s(s, "%d", &decNum);
while (decNum > 0){
printf("%d", decNum % 2);
decNum = decNum/2;
}
printf("\n");
}
main(){
char s[MAX_LEN];
char c='\0';
int count=0;
printf("enter a nunber\n");
while (c < MAX_LEN && ((c = getchar()) != EOF) && c != '\n'){
s[count] = c;
++count;
}
translate_dec_bin(s);
}
Однако, когда вход 1, выход я получаю 1 вместо 0001. Другими словами, я хочу 0, чтобы появиться в моем выходе. Как я могу это сделать?
Используйте отладчик. Просматривайте свой код по очереди, проверяя переменные, когда идете. Вы скоро увидите, что ваш код немного беспорядок, и хотя кто-то, вероятно, опубликует ответ для вас, чтобы получить репутацию, вы не узнаете об этом. Вы можете научиться самостоятельно отлаживать эту проблему. – mah
Хорошо, спасибо. Я попытаюсь найти руководство по отладке в Visual Studio. Итак, вы говорите, что есть проблема с моим кодом, который предотвращает печать нулей? @mah – Alan
Я говорю, что нет оснований думать, что код, который вы предоставили, будет печатать эти ведущие нули, и когда вы перешагнете, я подозреваю, что вы увидите причину. Проблема не является чем-то особенно запутанным, и когда вы это видите, вы, вероятно, пожалеете о помощи в этом;) – mah