이진수를 십진수 또는 십진수로 이진으로 변환하는 프로그램을 작성하려고합니다. 조건이 있는데 그 중 하나는 gets
함수를 사용하여 숫자와 숫자 시스템 응답을 얻어야한다는 것입니다. 내 프로그램에서는 숫자를 사용하기 위해 char 문자열을 정수 값으로 변경했습니다. 이것은 나의 작은 프로그램이다. C 프로그래밍에서 십진수로 이진수
(number[j]-48)
이 나에게 숫자를 보여, 나는 정수로 문자 문자열을 변경하는 경우
((number[j]-48)!=0) || ((number[j]-48)!=1))
난 후, 다른 아이디어를 시도 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int i,j,m, testnumber,realnumber,indx, total,k,x[10];
char numbersystem;
char number[10];
int main(){
printf("Is your number \"decimal\" (d) or \"binary\" (b)) ");
numbersystem = getchar();
getchar();
printf("Please Type your numbers");
gets(number);
i=0;
realnumber=0;
while(number[i]!='\0'){
realnumber = realnumber*10 + (number[i]-48);
i++;
}
testnumber = i;
indx=1;
if(numbersystem == 'b'){
for(j=0; j<testnumber; j++){
if (((number[j]-48)!=0) || ((number[j]-48)!=1)) {
printf("\nYou cannot use diffrent number in Binary form\n");
break;
}else {
for(k=testnumber-1; k>0; k--){
if((number[k]-48)=='1'){
for(m=0; m<j; m++){
indx = indx*number[m];
}
total = total + indx;
}
}
}
}
printf("Number %d\n\n",total);
}
}
내 문제는 내가 여기 생각입니다.
이printf("\nYou cannot use diffrent number in Binary form\n");
break;
내가 무엇을 알고하지 않습니다 : 내 원래 프로그램에서 이진 숫자를 입력하려고 할 때
는하지만, 난 그냥 "0"과 "1"하지만 난에 도달하고있어이 문을 사용 정확한 문제가있어서 당신의 도움이 필요합니다.
기본 디버그가 필요한 것처럼 보입니다. 'number [j] '에 무엇이 있는지 확인 했습니까? – John3136
사이드 바를 사용하면 라인 버퍼 된 입력은 수동으로 지워 져야합니다. 'printf ("숫자를 입력하십시오.);'while (getchat()! = '\ n') continue ;;'그 전에 – sjsam
else 조건 '0 또는 1'이어야하고 if 조건은'! (0 or 1)''! 0 and! 1'로 변환 될 수 있습니다. – dvhh