login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[c] Uniek

Offline Drieske - 28/02/2008 18:48
Avatar van DrieskeLid Hallo,

Heb een probleem met een volgende scriptje dat ik gemaakt hebt!



  1. int TelUniekeLetters( char Woord[] )
  2. {
  3. int Teller = 0;
  4. int Teller2 = 0;
  5. int Teller3 = 0;
  6. int Aantal = 0;
  7. char Tabel[] = {10,0,0,0,0,0,0,0,0};
  8.  
  9. for(Teller = 0; Teller < strlen(Woord); ++Teller)
  10. {
  11. for(Teller2 = 0;Teller2 < 10; ++Teller2)
  12. {
  13. if(Woord[Teller] != Tabel[Teller2])
  14. {
  15. ++Aantal;
  16. Tabel[Teller3] = Woord[Teller];
  17. Teller2 = 10;
  18. Teller3++;
  19. }
  20. }
  21. }
  22. printf("Aantal = %d\n", Aantal);
  23. return Aantal;
  24. }


De functie krijgt een Woord binnen van max 10 characters en moet zeggen hoeveel unieke, maar dit lukt mij niet! Ik krijg altijd het aantal characters weer van het woord!

2 antwoorden

Gesponsorde links
Offline Abbas - 28/02/2008 19:53
Avatar van Abbas Gouden medaille

Crew .NET
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. MessageBox.Show(getUnique(textBox1.Text).ToString());
  4. }
  5.  
  6. private int getUnique(string input)
  7. {
  8. char[] charArray = input.ToCharArray();
  9. return charArray.Distinct().ToArray().Length;
  10. }
Offline nemesiskoen - 28/02/2008 23:25
Avatar van nemesiskoen Gouden medaille

PHP expert
T'is C, geen C# volgens mij.

De fout zit hem in het feit dat je VANAF 1 teken niet gelijk is aan een ander je direct er vanuitgaat dat dit bij de rest ook zo is. Wat je in je geneste loop kan doen is het volgende:

  1. ok = 1;
  2. for(LOOP_NR_2)
  3. if(Woord[Teller] != Tabel[Teller2]) ok = 0; Teller2 = 10;
  4. if(ok) aantal++;


you get the point.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s