Ich habe an diesem Hexadezimal-Konverter gearbeitet und es scheint irgendwo im Programm ein logischer Fehler zu sein. Ich habe es auf Ubuntu mit dem g ++ - Tool ausgeführt, und jedes Mal, wenn ich t-Programm starte, gibt es mir einen riesigen Haufen von Müllwerten. Ich kann die Quelle der Müllwerte nicht herausfinden und kann auch nicht die Quelle des logischen Fehlers finden. Ich bin ein Neuling bei der Programmierung, also bitte helfen Sie mir, meinen Fehler herauszufinden.Logischer Fehler in C++ Hexadezimal-Konverter Code
#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 Versuchen Sie mir hier zu helfen? –