000
10.12.2009, 20:29 Uhr
~Chris12
Gast
|
Hallo Community, ich habe ein kleines Problem.
Ich soll ein Programm schreiben, das von einer beliebigen Anzahl von Codewörtern die Hamming Distance ermittelt.
Das ganze habe ich bisher so realisiert:
C++: |
#include <stdio.h> #include <string.h> #include <stdlib.h> #define BUF 255
char HammingDistance(char Code[],char Code2[]) { int array_groese,Hamming; char i; char v[80]={' '}; array_groese =0; Hamming =0; while (Code[array_groese]!='\0'){array_groese++;}//Größe des String-Arrays bestimmen for (i=0;i<=array_groese-1;i++){if ((Code[i]^Code2[i])==1){Hamming=Hamming+1;}} printf("Haben die Hamming Distance : %d\n",Hamming); printf("\n"); return(Hamming); }
void Sort(int value[],int CodewörterAnzahl) { int i,j; char buf[BUF]; char buf2[BUF]; //Vergleicht alle Codewörter mit einander for(i=0;i<=CodewörterAnzahl-1;i++) { for(j=(i+1);j<=CodewörterAnzahl-1;j++) { itoa(value[i], buf, 10); itoa(value[j], buf, 10); printf("Codewort %d & Codewort %d\n",value[i],value[j]); HammingDistance(itoa(value[i], buf, 10),itoa(value[j], buf2, 10)); } } }
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int *value; int size, i = 0; printf("Wie viele Werte benötigen Sie : "); scanf("%d", &size); value = (int *)malloc(size*sizeof(int)); if( NULL == value ) { printf("Fehler bei malloc....\n"); return EXIT_FAILURE; } while( i < size ) { printf("Wert für value[%d] eingeben : ", i); scanf("%d", &value[i]); i++; } printf("Hier Ihre Werte\n"); for(i=0; i < size; i++){ printf("value[%d] = %d\n", i, value[i]);} Sort(value,size); return EXIT_SUCCESS; }
|
Das Problem ist das wenn ich ein Codewort wie z.B. 0101 eingebe der Rechner 101 daraus macht. Wie könnte ich das verhindern?
Danke im Vorraus. |