C-Angeben ob eine Zahl eine Dezimalzahl ist?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
if(a%4==0){
    ...
}
Woher ich das weiß:Hobby
GameeraS 
Fragesteller
 11.12.2021, 11:18

Mal schauen ob das geht! Danke!

0
GameeraS 
Fragesteller
 11.12.2021, 12:01

Hat leider nicht funktioniert, es rechnet nur ob 0 rauskommt....

0
Zahhak  11.12.2021, 12:06
@GameeraS

Nein, tut es nicht.

Es ermittelt, ob der Rest der Division von a und 4 gleich 0 ist.

Und da ein Rest von 0 ganzzahlige Teilbarkeit impliziert ist es genau das, wonach du gefragt hast.

2
GameeraS 
Fragesteller
 11.12.2021, 12:25
@Zahhak

//Testdata:

//2000||2016||0||1900||2021

#include <stdio.h>

#include <stdlib.h>

int main(){

   const float a;

   printf("--------------------");

   printf("\nLeap Year Calculator");

   printf("\n--------------------");

   //input

   printf("\n-----------------");

   printf("\nType in a Year: ");

   scanf("%f", &a);

   printf("\n-----------------");

   if(a%4==0){

       if(a%100==0){

           if(%400==0){

               printf("\nThe Year %f is a Leap Year!",a);

           }else{

               printf("\nThe Year %f is not a Leap Year!",a);

               }

       }else{

           printf("\nThe Year %f is a Leap Year!",a);

           }

   }else{

       printf("\nThe Year %f is not a Leap Year!",a);

       }

}

das geht aber nicht :(

0
Zahhak  11.12.2021, 12:32
@GameeraS

Kein Wunder...

  1. Über einen Pointer einen Konstantwert zu verändern ist schon ziemlich eklig.
  2. Eine Jahreszahl als float zu behandeln ergibt noch weniger Sinn.
2
ralphdieter  11.12.2021, 14:00
@GameeraS

Wenn die Jahreszahl vom Typ float ist, schreibe fmod(a, 4)==0 (statt a%4==0).

Allerdings solltest Du Deine Entscheidung für den Typ float ausführlich kommentieren. Sonst fasst sich jeder beim Lesen nur an die Stirn.

2
class Main { 
 public static void main(String args[]) {
   double a = 11.5; 
   if( (int)a == a ){
   System.out.println("Ganze Zahl"); 
     } 
   else{
     System.out.println("Keine Ganze Zahl"); 
   }
 } 
}

Du kannst den Code testen bei:

https://replit.com/languages/java10

GameeraS 
Fragesteller
 11.12.2021, 11:58

Ok! Danke, aber das testet nur, ob 0 rauskommt....

0