Lernprogramm (Funktionen)

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Lernprogramm (Funktionen)

Beitrag von cloidnerux » So Mai 04, 2014 4:32 pm

Code: Alles auswählen

         rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel);
[...]      
    return(rueckgabe);
Was erwartest du hat "rueckgabe" für einen Wert?
Tipp: Lies mal die Beschreibung von scanf durch: http://www.cplusplus.com/reference/cstdio/scanf/
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 4:44 pm

mit scanf kann der Benutzer etwas eingeben,dass dann eingelesen wird und im Programm verarbeitet wird, ich kann da alles eingeben int,float,double usw.

ich weiß es einfach nicht,ich weiß mir nicht mehr zu helfen

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Lernprogramm (Funktionen)

Beitrag von Xin » So Mai 04, 2014 4:49 pm

Ich schau nur per Händi drüber, aber es entwickelt sich ja offenbar. :-)

Stimmt der Rückgabedatentyp Deiner Funktion?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 4:52 pm

die Funktion hat irgendein Fehler drinnen,ich find ihn aber nicht,der Benutzer muss doch z.b bei sin(60) Wurzel3 *0.5 eingeben können dass mach ich doch mit dem verschissenen scanf aber wie pack ich das in die Rückgabe

man ich hab schon Herzrasen wegen dem Scheiß

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 4:56 pm

Code: Alles auswählen

float get_user_input(int Winkelfunktion, int Winkel){
    float faktor;
    float wurzel;
    float rueckgabe;   
    
    if(Winkelfunktion==1){
        printf("Was ist der Wert der Funktion cos(%i)\n",Winkel);
        rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel);
    }
    else{
         printf("Was ist der Wert der Funktion sin(%i)\n",Winkel);
         rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel);
    }
       
    return(rueckgabe);
}
schau das ist meine Funktion

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Lernprogramm (Funktionen)

Beitrag von Bebu » So Mai 04, 2014 5:10 pm

Oben ist der Grund verlinkt:

Zitat:
int scanf ( const char * format, ... );

Read formatted data from stdin
Reads data from stdin and stores them according to the parameter format into the locations pointed by the additional arguments.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 5:12 pm

es geht aber trotzdem nicht verdammt,auch wenn ich davor int schreibe,ich hab alles schon probiert

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Lernprogramm (Funktionen)

Beitrag von cloidnerux » So Mai 04, 2014 5:17 pm

es geht aber trotzdem nicht verdammt,auch wenn ich davor int schreibe,ich hab alles schon probiert
Das Problem ist, dass du scanf nicht verstanden hast.
Scanf liest Werte ein und speichert diese in die angegebenen Variablen, in deinem Fall "faktor" und "wurzel". Scanf gibt dann die Anzahl der gelesenen Parameter zurück, in deinem Fall immer 2.
Deine Funktion "get_user_input" gibt also immer 2 zurück.
Du willst aber das Ergebnis der Nutzereingabe haben und zwar als float und nicht int.
Was du nun zurück geben willst ist ja folgender Mathematischer Ausdruck:

Code: Alles auswählen

faktor * Sqrt[wurzel]
Das sollte in code schon irgendwie auch so aussehen:

Code: Alles auswählen

return faktor * sqrt(wurzel);
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Lernprogramm (Funktionen)

Beitrag von Bebu » So Mai 04, 2014 5:18 pm

Du hast nicht verstanden, was in der Dokumentation steht.
Du gibtst in deiner Funktion den Rückgabewert von Scanf zurück. scanf gibt die Nutzereingabe aber nicht per return zurück sondern schreibt sie in die Variable, die du Scanf beim Aufruf angibst.
Jetzt kühl dich mal ab, mach 10 Minuten Pause und schau dir die Dokumentation von Scanf nochmal an.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 5:29 pm

ich will mich aber nicht abkühlen,ich will dieses scheiß Beispiel rausbekommen

was soll denn der Scheiß Hinweis im unteren Absatz sein
wo steht int rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel) ,was soll denn das??

Antworten