• 23.08.2025, 15:26
  • Register
  • Login
  • You are not logged in.

 

Draco

God

Code-reading |Verständnisfrage

Tuesday, February 1st 2005, 6:52pm

Source code

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

Tuesday, February 1st 2005, 6:55pm

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

Tuesday, February 1st 2005, 7:06pm

ich blick es immer noch nicht so ganz

pharao

Moderator

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

Tuesday, February 1st 2005, 7:11pm

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

Tuesday, February 1st 2005, 8:06pm

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

Tuesday, February 1st 2005, 9:08pm

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

Tuesday, February 1st 2005, 9:34pm

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