Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Führende 0 erhalten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.12.2009, 20:51 Uhr
0xdeadbeef
Gott
(Operator)


Es scheint mir so, als wolltest du eigentlich mit Strings, nicht mit Zahlen arbeiten. Etwa

C++:
typedef char value_t[256];

value_t *values;
size_t size;

// ...

values = (value_t*) calloc(size, sizeof(value_t));

for(i = 0; i < size; ++i) {
  scanf("%256s", values[i]);
}


...und dann halt value_t durchreichen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: