• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[C] Programm bricht ab

Status
Für weitere Antworten geschlossen.
K

krumme

Guest
Servus,

ich hab jetzt mit C angefangen und will jetzt ein kleines Programm schreben. Doch irgendwie bricht es immer nach dem Ermitteln des Burttoverkaufpreises ab.

Hier der Code:
Code:
      void main() 
   
      { 
        float BVP; 
        float BW;  
        float NVP; 
        float UST; 
    
      /*Ermitteln des Bruttoverkaufpreises*/ 
      printf("Bruttoverkaufspreis:\n"); 
       
      scanf("%g\n", &BVP); 
    
      /*Ermiteln des Restbuchwerts*/    
      printf("Bitte den Restbuchwert:\n"); 
   
      scanf("%g\n", &BW); 
   
    /*Ermitteln der UST*/   
      UST = BVP / 119 *19; 
   
        
   
      /*Ermitteln des NVP*/   
      NVP = BVP /119 * 100; 
   
      
   
        
   
      }

Danke für eure Hilfe


mfg krumme
 
Werbung:
Code:
#include <iostream>
using namespace std;

int main() 
{ 
    float BVP; 
    float BW;  
    float NVP; 
    float UST; 
    
    /*Ermitteln des Bruttoverkaufpreises*/ 
    cout << "Bruttoverkaufspreis:" << endl;
    
    cin >> BVP;
    
    /*Ermiteln des Restbuchwerts*/    
    cout << "Bitte den Restbuchwert:" << endl; 
    
    cin >> BW; 
    
    /*Ermitteln der UST*/   
    UST = BVP / 119 *19; 
    
    /*Ermitteln des NVP*/   
    NVP = BVP /119 * 100; 
    
    cout << "UST: " << UST << endl << "NVP: " << NVP << endl;
    
    return 0;
}

Vielleicht hilft dir das ja weiter aber was mir spontan aufgefallen ist das du keine Includes gemacht hast.
 
Geht leider nicht.

Ich hab schon die stdio.h included und zwar mit
Code:
#include <stdio.h>
hab aber nur den Codeausschnitt mit den Befehlen gebracht, da der andere Teil nicht wichtig gewessen wäre.

Hat sonst noch jemand eine idee?


mfg krumme
 
Werbung:
Also eigentlich sehe ich (als C++ler) keinen Fehler.

Wahrscheinlich verpeilst dus mit dem Komma.
Dein Programm will als Komma einen Punkt und kein Komma, da er ein Komma als Char interpretiert (was ja auch richtig ist), das dann aber nichtmehr in ein Float reinpasst und das Programm dann verreckt.

also versuch zb. anstatt von
2,30
2.30

falls das dein Fehler gewesen sein sollte.

Ansonsten sieht, wie gesagt, alles richtig aus.

btw: bei solchen (kleinen) Programmen ists nicht verkehrt den kompletten Code zu posten ;)

n1ob
 
Hallo,

die scanf sind falsch, bei denen muss das \n am Ende raus. Also
Code:
scanf("%g", &BVP);
Mit dem \n müsste er afaik gleich noch auf die nächste Eingabe warten.



N43
 
Werbung:
man sollte bei C immer bei der main funktion ein int haben, und kein void, das löst dann eine exception aus. Da gibts paar Compiler die das void erlauben, sicher bin ich mir nicht.
 
man sollte bei C immer bei der main funktion ein int haben, und kein void, das löst dann eine exception aus. Da gibts paar Compiler die das void erlauben, sicher bin ich mir nicht.
Nein, das löst keine Exception aus, zumindest keine zur Laufzeit (wo die Bezeichnung normalerweise verwendet wird). Aber manche Compiler weigern sich dann, das Programm zu kompilieren, weil void main(...) nach dem C-Standard keine gültige main() Funktion ist.


N43
 
Werbung:
Könnte ja sein, dass das Problem weiterhin besteht, wäre nicht das erste mal dass es nur ein Fehler gibt.
aber in deam fall ist alle klar.
mfg
 
@N43,

soweit ich das weiß löst das keine exception im Program aus, sondern im OS. Weil ein Betriebsystem wartet auf einen Rückgabewert von Programseite aus.
 
Werbung:
@N43,

soweit ich das weiß löst das keine exception im Program aus, sondern im OS. Weil ein Betriebsystem wartet auf einen Rückgabewert von Programseite aus.
Nein, auch das OS löst dann keine Exception aus, das Programm muss mit einer Systemfunktion (über einen Interrupt, etc) beendet werden, der Compiler wird dann den default-Rückgabewert einbauen.

Das "int main()" und "void main()" ist allein durch den C-Standard festgelegt. Es gibt auch durchaus Programmiersprachen die nur Prozeduren als Hauptfunktion zulassen (das entspricht dann void main()).


N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben