Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Code:



#include<stdio.h>


int main()

{

  int i,j;

  char ch;

  for (i=0; i<16;i++)

  {

    for (j=0; j<8; j++)

    {

      ch = i + 16 *j;

  if (ch >=32 && ch <=126)

    printf(" %X %c",ch,ch);

   else

   printf(" %X %c", ch,' ');

  }

  printf("\n");

}

 return 0;

}	

In diesen Programm verstehe ich eine Zeile nicht und zwar die hier : Code:
ch = i + 16 *j;	

Was wird hier getan ?

Bitte um Hilfe und danke im voraus.

mfg soufian

Geschrieben

Hallo soufian!

Nun, im Prinzip ganz einfach: Der Variablen ch wird ein Wert zugewiesen, der aus dem 16-fachen von j plus i besteht.

Das ch eine char-variable ist, stört weiter nicht, da char = 8bit integer.

Bei der Ausgabe wird ch als Zeichen interprätiert, also entspricht i + 16 *j dem Ascii-Wert des Zeichens. So kann man das selbe auf zwei verschiedene Weisen ansprechen :)

Etwas verwirrend :upps , aber irgendwann sehr praktisch, wenn man der passende Groschen gefallen ist.

tsg

Geschrieben

wenn ich aber die Zeile ändere das es so aussieht:

#include<stdio.h>


int main() 

{ 

  int i ,j;

  char ch;

  for (i=0; i<16;i++)

  {

    for (j=0; j<8; j++) 

    {

[SIZE="6"]      ch = 15 + 16*7;[/SIZE]

  if (ch >=32 && ch <=126)

    printf(" %X %c",ch,ch);

   else

   printf(" %X %c", ch,' ');

  }

  printf("\n");

}

 return 0;

}

kommt dann ein etwas verändertes Ergebnis

Geschrieben

i ist nicht 15 und j ist nicht 7. Die Variablen haben bei jedem Schleifendurchlauf (i für die äußere und j für die innere Schleife) einen anderen Wert. Nur beim letzten Durchlauf der inneren Schleife ist i 15 und j 7.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...