0
이 16 진수 변환기에서 작업을했는데 프로그램의 어딘가에 논리적 오류가있는 것 같습니다. 우분투에서 g ++ 도구를 사용하여 실행했고 t 프로그램을 실행할 때마다 쓰레기 값이 커졌습니다. 쓰레기 값의 출처를 알 수 없으며 논리적 오류의 원인을 찾을 수 없습니다. 나는 프로그래밍의 초보자이기 때문에 제 실수를 이해하도록 도와주세요.C++의 논리 오류 16 진수 변환기 코드
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int bin[20],finhex[10],num,bc=0,i,j,k,l=0,r=10,n=1,binset=0,m=0;
int hex[16]= {0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111};
char hexalph='A';
cout<<"\nEnter your Number: ";
cin>>num;
while(num>0)
{
bin[bc]=num%2;
num=num/2;
bc++;
}
if(bc%4!=0)
bc++;
for(j=0;j<bc/4;j++)
for(i=0;i<4;i++)
{
binset=binset+(bin[m]*pow(10,i));
m++;
}
for(k=0;k<16;k++)
{
if(hex[k]==binset)
{
if(k<=9)
finhex[l]=k;
else
while(n>0)
{
if(k==r)
{
finhex[l]=hexalph;
break;
}
else
{
hexalph++;
r++;
}
}
l++;
r=10;
binset=0;
hexalph='A';
break;
}
}
while(l>=0)
{
cout<<"\n"<<finhex[l];
l--;
}
return 0;
}
@ user64322 나를 도와주세요. –