• 04.02.2026, 12:24
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies dein erster Besuch auf dieser Seite ist, lese dir bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Draco

God

Code-reading |Verständnisfrage

Dienstag, 1. Februar 2005, 18:52

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include      <stdio.h> 
#include      <string.h>

int
main ( int argc, char *argv[] )           
{
      char      buffer[256];
      int            ziffer[10];
      int            i, n;


      for ( i=0; i<10; i+=1 )
            ziffer[i]      = 0;

      printf ("Zeichenkette (Ziffern): ");
      scanf ("%s", buffer );
      
      n      = strlen(buffer);
      printf ("Länge : %d\n", n );


      for ( i=0; i<n; i+=1 )
            ziffer[buffer[i]-'0']++;
      
      printf ("Ziffer  Anzahl\n");
      for ( i=0; i<10; i+=1 )
            printf ("%4d%8d\n", i, ziffer[i] );

      printf("\n\n>>>> Benden mit 'Return' : "); 
      setbuf(stdin,0); getchar();

      return 0;
}


Kann mir mal jemand erklären, was genau diese Zeile macht ?
Alles andere blick ich ja, aber die Zeile kapier ich net

     for ( i=0; i<n; i+=1 )
           ziffer[buffer-'0']++;

Aufgabe war: Zeichenkette von Zahlen anzahl aller zeichen bestimmen und häufigkeit der Ziffern ermitteln.

pharao

Moderator

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 18:55

gibt die Buchstaben des char[] als ASCII- Codierung aus ('A' = 62 usw)

so kommst du an die "Zahl", die sich hinter der char-Ziffer befindet.
'0' - '0' = 0
'1' - '0' = 1
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Draco

God

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 19:06

ich blick es immer noch nicht so ganz

pharao

Moderator

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 19:11

du hast die "ziffern" als chars.
die '0' wird in dem array in ASCII- Darstellung gespeichert. und zwar als Zahl. '0' = 48, '1' = 49 (http://www.asciitable.com/)

wenn du jetzt die '0' als int haben willst, musst du zuerst 48 von dem char '0' abziehen. und ob du
'0' - 48 rechnest oder
'0' - '0' ist das Gleiche
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Draco

God

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 20:06

ahh danke das hab ich geschnallt jetzt.

Bin grad dabei die Übungsklausuren vom Prof durchzugehen. Donnerstag is Klausur in C angesagt ::)

pharao

Moderator

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 21:08

dann viel Glück. :D
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Draco

God

Re: Code-reading &#124;Verständnisfrage

Dienstag, 1. Februar 2005, 21:34

Jo thx, verwunderlich ist der Faden in den klausuren... die Übungsklausuren (ehemals "echte" klausuren) werden chronologisch immer schwieriger :-X

3 Aufgaben á 10 Punkte und keine Binärbewertungen.
12 von 30 Punkten brauch ich um zu bestehen.... bis jetzt haben die Aufgaben alle hingehauen das Semester lang...
Bin trotdem etwas nervös