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:
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.
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:
Code:
#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; }
Danke im Vorraus.
Comment