C Programm um ALLE Ergebnisse auszugeben die "Bedingung" erfüllen

Du hast nur das zitiert, aber den wichtigeren Teil weggelassen
Das habe ich absichtlich getan ;)

Das ging leider nachträglich nichtmehr. Hatte schon auf antworten gedrückt und in der "Bearbeiten-Funktion" kann man keine Code-Tags mehr einfügen.
Und wie das geht! Du musst nur auf "Erweitert" drücken, da kannst du dann die CODE-Tags auswählen. Außerdem kannst du sie auch von Hand schreiben: <CODE></CODE> nur mit [] statt <>.

Und so sieht es jetzt aus und dürfte damit auch (eigentlich) endlich geschafft sein
Sieht gut aus, da gibt es eigentlich nichts mehr auszusetzen. Nur noch ein kleiner Verbesserungsvorschlag: Du könntest "if else" verwenden:
Code:
if (Ergebnis_x1 == 0 && Ergebnis_x2 == 0) { printf ("Probe fuer x1= %g\tProbe fuer x2= %g\n", Ergebnis_x1, Ergebnis_x2); }
if (Ergebnis_x1 == 0 && Ergebnis_x2 != 0) { printf ("Probe fuer x1= %g\tBedingung fuer x2 nicht erfuellt\n", Ergebnis_x1); }
if (Ergebnis_x1 != 0 && Ergebnis_x2 == 0) { printf ("Bedingung fuer x1 nicht erfuellt, da x1= %g\tProbe fuer x2= %g\n",Ergebnis_x1, Ergebnis_x2); }
if (Ergebnis_x1 != 0 && Ergebnis_x2 != 0) { printf ("Gleichungsbedingungen nicht erfuellt\n", Ergebnis_x2); }

Wird zu:
Code:
if( Ergebnis_x1 == 0 && Ergebnis_x2 == 0 ) { printf( "Probe fuer x1= %g\tProbe fuer x2= %g\n", Ergebnis_x1, Ergebnis_x2 ); }
else if( Ergebnis_x1 == 0 && Ergebnis_x2 != 0 ) { printf( "Probe fuer x1= %g\tBedingung fuer x2 nicht erfuellt\n", Ergebnis_x1 ); }
else if( Ergebnis_x1 != 0 && Ergebnis_x2 == 0 ) { printf( "Bedingung fuer x1 nicht erfuellt, da x1= %g\tProbe fuer x2= %g\n",Ergebnis_x1, Ergebnis_x2 ); }
else { printf( "Gleichungsbedingungen nicht erfuellt\n" ); } // Hier ist das Ergebnis_x2 zu viel, wahrscheinlich beim Copy-Paste übergeblieben!
Das ist zwar eher ein schlechtes Beispiel um die Vorteile von "if else" zu demonstrieren, weil es hier komplett egal ist, ob du 4 "if's" oder "if else" nimmst, aber du solltest zumindest wissen, dass es "if else" gibt. Außerdem ist beim letzten printf ein Parameter zu viel!

Gruß
BlackMark
 
Zuletzt bearbeitet:
Außerdem ist beim letzten printf ein Parameter zu viel!

Stimmt da stand erst noch ein anderer Befehl drin, den ich abgeändert habe - war noch ein unerwünschtes Überbleibsel.

Jetzt hier die "finale Fassung" hoffentlich weniger fehlerbehaftet als Gothic3 bei Release ;)

Code:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

	int main( void )	{

	float p, q = 0.1;
	double x1, x2;
	double Unter_Wurzel, Ergebnis_x1, Ergebnis_x2;
	
	
	
		for (p = 0 ; p <= 2.1 ; p += 0.1) {

				Unter_Wurzel = (p/2)*(p/2) - q;
			
				if (Unter_Wurzel < 0) { printf ("Wert unter Wurzel kleiner 0 - Fehler!\n\n"); }

				else {

				x1 = -p/2 + sqrt(Unter_Wurzel);
				x2 = -p/2 - sqrt(Unter_Wurzel);

				Ergebnis_x1 = x1*x1 + p*x1 + q;
				Ergebnis_x2 = x2*x2 + p*x2 + q;
				
				printf ("\n\nWert fuer p= %.2f\tErgebnis x1= %g\tErgebnis x2= %g\n", p, x1, x2);
				
				if (Ergebnis_x1 == 0 && Ergebnis_x2 == 0) { printf ("Probe fuer x1= %g\tProbe fuer x2= %g\n", Ergebnis_x1, Ergebnis_x2); }
				else if (Ergebnis_x1 == 0 && Ergebnis_x2 != 0) { printf ("Probe fuer x1= %g\tBedingung fuer x2 nicht erfuellt\n", Ergebnis_x1); }
				else if (Ergebnis_x1 != 0 && Ergebnis_x2 == 0) { printf ("Bedingung fuer x1 nicht erfuellt, da x1= %g\tProbe fuer x2= %g\n",Ergebnis_x1, Ergebnis_x2); }
				else { printf ("Gleichungsbedingungen nicht erfuellt\n"); }
					
	}}

	printf("\n\nBitte Enter druecken um das Programm zu verlassen");
	getchar();

 return 0;

 }

Nochmal ein fettes Danke an alle Beteiligten ihr habt mir echt super geholfen!!! :daumen:
 
Zurück
Oben