Das Buch für Anfänger zur C Programmierung unter Linux und MS Windows, Einstieg in C Jürgen Wolf C C++ C/C++ Programmieren Linux ANSI C Standard C C99 Einstieg in C Buch Bücher Einstieg in C - C Kurs Programmieren C/C++ Tutorial Lösungen zu den Aufgaben von Kapitel 11
  1. Hier das Listing dazu:

    #include <stdio.h>
    
    int main()
    {
      int i=0;
      int sum_gerade=0, sum_ungerade=0;
    
      while(i<=100)
         {
           if( i%2 ) /* Rest = 1 (ungerade) */
              sum_ungerade+=i;
           else
              sum_gerade+=i;
           i++;
         }
       printf("Summe gerader Zahlen  : %d\n",sum_gerade);
       printf("Summe ungerader Zahlen: %d\n",sum_ungerade);
       return 0;
    }
  2. In der if-Bedingung wurde hier eine Gleitpunktzahl auf Gleichheit überprüft, was aber wegen der ungenauen Darstellung von Gleitpunktzahlen niemals exakt 0.5 sein wird. Hier die sicherere Alternative:

    #include <stdio.h>
    
    int main()
    {
       float i;
    
       for(i=0.0f; i < 1.0f; i+=0.05f)
          {
             if(i > 0.46f && i < 0.54f)
                printf("Die Hälfte ist erreicht\n");
          }
       return 0;
    }
  3. Hier das Listing.

    #include <stdio.h>
    
    int main()
    {
       int count=0, sum=0, wert;
    
       do{
           printf("Ein Zahl eingeben (0=Ende): ");
           if( scanf("%d",&wert) )
              {
                 sum+=wert;
                 count++;
              }
           else
              {
                 printf("Fehler bei scanf()...\n");
                 wert=0;
              }
         }while(wert != 0);
    
       printf("Durchschnitt aller Zahlen %.2f\n",(float)sum/(float)count);
       return 0;
    }
  4. Hier die Lösung.

    #include <stdio.h>
    
    int main()
    {
       int jahr=1980;
    
       while(jahr <= 2004)
          {
             if( (jahr%4 == 0) && (jahr%100 != 0) )
                printf("%d ist ein Schaltjahr\n", jahr);
             else if(jahr%400 == 0)
                printf("%d ist ein Schaltjahr\n", jahr);
             jahr++;
          }
    
       return 0;
    }
  5. Die Lösung:

    #include <stdio.h>
    
    int main()
    {
       int jahr=1980;
    
       while(jahr <= 2004)
          {
             if((jahr%4==0)&&(jahr%100!=0)?1:(jahr%400)==0?1:0)
                printf("%d ist ein Schaltjahr\n", jahr);
             jahr++;
          }
       return 0;
    }