switch case, römische zahlen, while schleife



  • Dann packe den gesamten switch-Block in eine Funktion und gib ihr als Parameter die römische Ziffer mit.

    Noch besser wäre es, wenn du nach dem EVA-Prinzip auch die Ausgabe getrennt von der Umwandlungsfunktion halten würdest, so daß die obige Funktion nur den Dezimalwert (als int) zurückgibt.
    Und die Ausgabe führst du dann passend formatiert mit printf durch (orientiere dich einfach an dem Beispiel in dem von dir gezeigten Link).



  • hallo! danke für die antwort hab jz eine andere uebung gemacht mit hilfe der Funktionen der proggen.org seite.

    "programm solle eine funktion zuer berechnung von widerstandwerten in pararallelen schaltungen enthalten. es sollen 2 werte eingelesen werden und der berechnete wert in der variablen rtotal gespeichert und ausgegeben werden."

    die ein und ausgabe sollen in der main stehen
    hoff das passt so, nur das die eingabe in der main steht hab ich noch nicht hinbekommen

    #include <stdio.h>
    #include <stdlib.h>
    
    
    double berechnung (double, double);
    
    int main()
    {
    	double r1= 0, r2= 0, rtotal= 0;
    	
    	
    	rtotal = berechnung (r1, r2);                                //Funktionsaufruf
    	printf("Der Ersatzwiderstand betraegt:%.2f \n",rtotal);
    	
    		
    	return 0;
    }
    
    
    double berechnung (double a, double b)
    {
    
    
    printf("Geben Sie zwei parallel geschaltene Widerstaende ein: \n",a, b);
    	scanf("%lf" "%lf",&a, &b);
    	
    	return (a*b) / (a+b);
    }```cpp
    
    


  • @razor sagte in switch case, römische zahlen, while schleife:

    printf("Geben Sie zwei parallel geschaltene Widerstaende ein: \n",a, b);
    

    Was soll das a, b da am Ende bewirken? (Es bewirkt nichts!).



  • ja stimmt natuerlich



  • @razor sagte in switch case, römische zahlen, while schleife:

    nur das die eingabe in der main steht hab ich noch nicht hinbekommen

    wie hast du das probiert?



  • habs jz so gemacht

    #include <stdio.h>
    #include <stdlib.h>
    
    
    double rtotal (double r1, double r2);
    
    int main()
    {
    	double r1= 0; 
    	double r2= 0; 
    
    		
    	printf("Geben Sie zwei parallel geschaltene Widerstaende ein: \n");
    	scanf("%lf" "%lf",&r1, &r2);	
    		
                                
    	printf("Der Ersatzwiderstand betraegt:%.2f \n", rtotal(r1, r2));  //Funktionsaufruf
    	
    		
    	return 0;
    }
    
    
    double rtotal (double r1, double r2)
    {	
    	return (r1*r2) / (r1+r1);
    }
    

    und ncoh eine mit mittelwerts berechnungen

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    
    double arith  (double zahl1, double zahl2);
    double geomet (double zahl1, double zahl2);
    double harmon (double zahl1, double zahl2);
    
    int main()
    {
    	double zahl1= 0.0;
    	double zahl2= 0.0;
    	
    
    	printf("Geben Sie zwei Zahlen ein:\n");
    	if(scanf("%lf %lf", &zahl1, &zahl2) > 2)
    	{
    		printf("Die Eingabe ist ungültig!\n");
    	}
    
    	printf("Das arithmetische Mittel ist %.2lf \n", arith(zahl1, zahl2));
    	printf("Das geometrische Mittel ist %.2lf \n",  geomet(zahl1, zahl2));
    	printf("Das harmonische Mittel ist %.2lf \n",   harmon(zahl1, zahl2));
    
    	return 0;
    }
    
    
    
    double arith (double zahl1, double zahl2) //Berechnung arithmetisches Mittel
    {
    	return (zahl1+zahl2) / 2;
    }
    
    double geomet (double zahl1, double zahl2) //Berechnung geometrisches Mittel
    {
    	return sqrt(zahl1*zahl2);
    }
    
    double harmon (double zahl1, double zahl2) //Berechnung harmonisches Mittel
    {
    	return (2*zahl1*zahl2) / (zahl1+zahl2);
    }
    


  • jz moecht ich diese machen,
    vlthat ja auf die auch gerade jemandl lust!

    Ihr Programm soll zwei (20-stellige) int-Arrays mit Werten befüllen.
    Das erste Array soll mit Werten ab 5 in 5er-Schritten befüllt werden (5,10,15,...).
    Das 2.Array soll die Werte des 1.Arrays * 2 enthalten (10,20,30,...)

    Die Befüllung ist mit einer for-Schleife auszuführen! Das Programm soll die Summen und Mittelwerte (Summe/Anzahl der Elemnte) ausgeben.

    Die Anzahl der Elemente eines Arrays lässt sich mit folgender Anweisung ermitteln:
    (sizeof(arrray)/sizeof(int))

    Mögliche Ausgabe:
    array1: Summe:........... Mittelwert:...........

    array2: Summe:........... Mittelwert:...........



  • @razor sagte in switch case, römische zahlen, while schleife:

    jz moecht ich diese machen,
    vlthat ja auf die auch gerade jemandl lust und ist im urlaub wo das wetter seit 3 tagen durchregnet 😑 😉

    Ja wie jetzt, möchtest DU sie machen, oder möchtest Du sie gemacht haben?

    Ich sehe gerade jemanden, der sie auch machen möchte:
    https://www.c-plusplus.net/forum/topic/350269/array-mit-for-schleife-befüllen-hilfeeee



  • also ich bin gerade dabei aber ich wollt quasi die aufgabe reinstellen ob einfach jemand lust sie auch zu machen 😅



  • @razor sagte in switch case, römische zahlen, while schleife:

    also ich bin gerade dabei aber ich wollt quasi die aufgabe reinstellen ob einfach jemand lust sie auch zu machen 😅

    Ob @HIitsme Lust dazu hat weiß ich nicht. Er/Sie muss es wohl auch machen: https://www.c-plusplus.net/forum/topic/350269/array-mit-for-schleife-befüllen-hilfeeee



  • @razor sagte in switch case, römische zahlen, while schleife:

    if(scanf("%lf %lf", &zahl1, &zahl2) > 2) 
    {
        printf("Die Eingabe ist ungültig!\n");
    }
    

    scanf gibt die Anzahl der gelesenen Werte zurück. Hier ist alles andere als 2 fehlerhaft.
    Mehr als 2 wird nicht kommen. 0, 1 und EOF wären noch mögliche Werte.

    Zudem ist es ja schön, dass du die Meldung raus gibst, aber du rechnest munter mit den falschen Werten weiter.

    Was passiert eigentlich, wenn zweimal 0 eingegeben wird?



  • @DirkB
    ```cpp

    printf("Geben Sie zwei Zahlen ein:\n");
    	scanf("%lf %lf", &zahl1, &zahl2);
    	
    	if (zahl1<2||zahl2<2)
    	{
    		printf("Die Eingabe ist unter zwei\n");
    	}
    

    habs so gemacht



  • @razor sagte in switch case, römische zahlen, while schleife:

    @DirkB

    ```cpp
    printf("Geben Sie zwei Zahlen ein:\n");
    scanf("%lf %lf", &zahl1, &zahl2);
    
    if (zahl1<2||zahl2<2)
    {
    	printf("Die Eingabe ist unter zwei\n");
    }
    

    habs so gemacht

    WTF?
    willst du überprüfen ob zwei Werte eingegeben wurden oder den Wertebereich der Eingabe?


Anmelden zum Antworten