Osterfomel?



  • Hallo,

    habe die Osterformel versucht zu programmieren, jedoch stimmt die Berechnung nicht. Bitte um Hilfe, woran kann das liegen?:

    void main (void)                                                                                                     
    
    {                                                                                                                    
    
    	int 	i,                                                                                                       
    			ostern,		// Ostern                                                                                    
    			m,			// Parameter                                                                                 
    			n,			// Parameter                                                                                 
    			a,			// 19er Rest                                                                                 
    			b,			//                                                                                           
    			c,			//                                                                                           
    			d,			//                                                                                           
    			e,			//                                                                                           
    			jahr,		// Jahreszahl                                                                                
    			merker,		// Merker für die do-while Schleife                                                          
    			r,			// Hilfsvariable                                                                             
    			wiederh;	// Hilfsvariable                                                                             
    
    	do {                                                                                                             
    
    	a = 0;                                                                                                           
    	b = 0;                                                                                                           
    	c = 0;                                                                                                           
    	d = 0;                                                                                                           
    	e = 0;                                                                                                           
    
    		Cls();                                                                                                       
    
    			merker=0;                                                                                                
    
    			// Begrüßung                                                                                             
    
    			printf("|___________________________________|\n");                                                       
    
    			printf("|                                   |\n");                                                       
    
    			printf("| F E I E R T A G B E R E C H N E R |\n");                                                       
    
    			printf("|___________________________________|\n");                                                       
    
    			printf("|                                   |\n");                                                       
    
    			printf("| Berechnet von Feiertage bis  2300 |\n");                                                       
    
    			printf("|___________________________________|\n");                                                       
    
    			printf("|                                   |\n");                                                       
    
    			printf("|   Bitte geben Sie Das Jahr ein:   |\n");                                                       
    
    			scanf("%i", &jahr );                                                                                     
    
    /***************************************************************/                                                    
    
    			// ANFANG OSTERFORMEL		                                                                             
    
    				// Ausschliessung einer Falscheingabe                                                                
    
    				 if(jahr<2300)														                                 
    
    				  {                                                                                                  
    
    				  	// ANFANG von Bestimmung von "N" und "M"                                                         
    
    				 	if (jahr<=1582)                                                                                  
    
    				 		{                                                                                            
    							m =15;                                                                                   
    							n=6;                                                                                     
    
    				 		}                                                                                            
    
    				 	if (jahr>=1582 && jahr<=1699)                                                                    
    
    				 		{                                                                                            
    							m =22;                                                                                   
    							n=2;                                                                                     
    				 		}                                                                                            
    
    				 	if (jahr>=1700 && jahr<=1799)                                                                    
    
    				 		{                                                                                            
    				 			m=23;                                                                                    
    				 			n=3;                                                                                     
    				 		}                                                                                            
    
    				 	if (jahr>=1800 && jahr<=1899)                                                                    
    				 		{                                                                                            
    				 			m=23;                                                                                    
    				 			n=4;                                                                                     
    				 		}                                                                                            
    
    				 	if (jahr>=1900 && jahr<=2099)                                                                    
    				 		{                                                                                            
    				 			m=24;                                                                                    
    				 			n=5;                                                                                     
    				 		}                                                                                            
    
    				 	if (jahr>=2100 && jahr<=2199)                                                                    
    						{                                                                                            
    							m=24;                                                                                    
    							n=6;                                                                                     
    						}                                                                                            
    
    					if (jahr>=2200 && jahr<= 2299)                                                                   
    						{                                                                                            
    							m=25;                                                                                    
    							n=0;                                                                                     
    						}                                                                                            
    
    					// ENDE von Bestimmung von "N" und "M"	 	                                                     
    
    					// ANFANG von bestimmung von Hilfsvariablen "a bis e"                                            
    						a = jahr %19;                                                                                
    						b = jahr %4;	 	                                                                         
    	 					c = jahr %7;                                                                                 
    	 					d = (19 * a + m) %30;                                                                        
    	 					e = (2*b + 4*c + 6*d + n) %7;                                                                
    	 				// ENDE von bestimmung von Hilfsvariablen                                                        
    
    					// ANFANG von bestimmung von Hilfsvariablen "r"                                                  
    
    					// ENDE von bestimmung von Hilfsvariablen "r"                                                    
    
    					if (d+e>9)                                                                                       
    
    						{                                                                                            
    							ostern = d + e - 9;                                                                      
    
    							printf("Ostern ist am %i ten März", ostern);                                             
    						}                                                                                            
    
    					else                                                                                             
    						{                                                                                            
    							ostern = 22 + d + e;                                                                     
    
    							printf("Ostern ist am %i ten März", ostern);                                             
    						}                                                                                            
    
    	 		//ENDE OSTERFORMEL                                                                                       
    
    /***************************************************************/                                                    
    
    				// Feststehende Feiertage                                                                            
    
    					 printf("\n   24 Dezember \n");                                                                  
    					 printf("   25 Dezember - Weihnachten \n");                                                      
    					 printf("   01 Januar   - Neujahr   \n");                                                        
    
    			 }                                                                                                       
    
    			else                                                                                                     
    
    			 	{                                                                                                    
    
    					// Alternative Ausgabe bei einer falscheingabe                                                   
    
    					printf("Diese Jahrzahl kann leider nicht berechnet werden!\n");                                  
    
    				}                                                                                                    
    
    		printf("\n\nMöchten Sie eine erneute berechnung von beweglichen Feiertagen berechen\nfür Ja=1 für Nein=2");  
    
    		scanf("%i", &wiederh);                                                                                       
    
    			if (wiederh==1)                                                                                          
    				{                                                                                                    
    					printf("HHHHH");                                                                                 
    					merker=1;                                                                                        
    				}                                                                                                    
    	if (wiederh==2)                                                                                          
    				{                                                                                                    
    					merker=0;                                                                                        
    				}                                                                                                    
    	}                                                                                                                
    
    while (merker==1);                                                                                               
    
    // Proramm ENDE                                                                                                  
    	printf("\n TSCHAU");                                                                                             
    
    }
    

    Danke im Voraus

    S.



  • vielleicht an der Osterformel selbst? 😃



  • gh0st124 schrieb:

    vielleicht an der Osterformel selbst?

    rofl!

    Also ich hab mir deinen Code jetzt nicht durchgelesen, aber guck doch mal hier!


Anmelden zum Antworten