Hilfe bei Programm



  • Also, das ist mein Programm, bin ein ziemlicher Anfänger und wollte mal was größeres machen (für mich).
    Das Proggi soll eine Note in einem(oder mehreren) Fach(ern)errechnen:

    1. Noten-und Fächeranzahl fragen.
    2. Die Noten eingeben lassen.
    3. den Durchschnittt und Endnote errechen.
    4. Die Noten in den Fächern ausgeben.

    #include "stdafx.h"
    #include <iostream>
    
    #using <mscorlib.dll>
    
    using namespace std;
    
    void main (void)
    {
    	int Notenanzahl;
    	float Noten [100];
    	int Faecheranzahl;
    	float Faecher[100];
    	int i;
    	int j;
    	cout << "Wie viele Noten (max. 100):";
    	cin >> Notenanzahl;
    	cout << "Wie viele Faecher (max.100):";
    	cin >> Faecheranzahl;
    	for (j=0;j<Faecheranzahl;j++)
    	{
    		for (i=0;i<Notenanzahl;i++)
    		{
    			cout << "Bitte Noten eingeben:";
    			cin >> Noten [i];
    		};
    	};
    	Faecher[j]=(Noten[i]/Notenanzahl);
    
    	for (j>0;j<Faecheranzahl;j++)
    	{
    		cout << Faecher[j];
    	};
    
    }
    

    Das Prob.: Wenn ich es ausführe, kann ich nur Fächeranzahl, Notenanzahl und die Noten eigeben, gerechnet wird nicht und ausgegeben erst recht nicht.

    Könnt ihr mir helfen?
    MfG
    The Ghost

    PS: Ich weiß, mit ner Benutzeroberfläche wärs übersichtlicher, aber ich weiß net wie des geht, habt ihr da n Tut?



  • for (j>0;j<Faecheranzahl;j++)
        {
            cout << Faecher[j];
        };
    

    sieh dir diese schlaufe nochmals genauer an. Da kann wohl etwas nicht ganz stimmen.



  • Sorry, aber so ganz seh ichs net, kannstes mir sagen?



  • for (j=0;j<Faecheranzahl;j++)
        {
            cout << Faecher[j];
        };
    

    du willst ja wieder von beginn an die schlaufe durchlaufen, nicht? daher j=0



  • for (j=0;j<Faecheranzahl;j++)
    	{
    		for (i=0;i<Notenanzahl;i++)
    		{
    			cout << "Bitte Noten eingeben:";
    			cin >> Noten [i];
    		};
    	};
    	Faecher[j]=(Noten[i]/Notenanzahl);	
    }
    

    Die Berechnung stimmt auch nicht so ganz.
    1. Man rechnet doch immer die Summe aller Noten durch Notenanzahl, oder seh ich das falsch?
    2. Du hast so nur ein Objekt im Array 'Fächer' initialisiert! Nämlich Faecheranzahl-1.
    ->Faecher[j]=(Noten...) muss in die 2. for-Schleife



  • Gut, danke, ihr beiden, jetzt funktionierts, aber ich habe noch ein anderes Problem, ich will nämlich, dass das Programm die Noten zusammenrechnet und erst dann durch die Notenaanzahl teilt.

    Das Problem dabei ist, dass das dann in der Schleife nicht funktioniert, wenn ich ja

    for (i=0;i<Notenanzahl;i++)
    		{
    			cout << "Bitte Noten eingeben fuer Fach " <<i++; cout << " eingeben:";
    			cin >> Noten [i];
                Noten[i]+Noten[i]+Noten[i];
    			Faecher[j]=(Noten[i]/Notenanzahl);
    		};
    

    schreibe, würde er ja immer nur die Nummer nehmen, die gerade läuft.

    Muss ich da jetzt

    Noten[0]+Noten[1]+Noten[2]+...
    

    schreiben oder kann man das mit einer Schleife umgehen?

    Danke für Antworten!
    The Ghost



  • mach einfach:

    #include "stdafx.h"
    #include <iostream>
    
    #using <mscorlib.dll>
    
    int main(void)
    {
        int iNotenanzahl;
        float fNoten [100];
        int iFaecheranzahl;
        float fFaecher[100];
        int iNoteGesamt;
        int i;
        int j;
        std::cout << "Wie viele Noten (max. 100):";
        std::cin >> iNotenanzahl;
        std::cout << "Wie viele Faecher (max.100):";
        std::cin >> iFaecheranzahl;
        // ...
    
        for(int j = 0; j<Notenanzahl; j++)
        {
            iNoteGesamt += Noten[j];  // Dann addierst de die Noten solange zusammen, 
                                      // bist de an de die Notenanzahl erreicht hast und 
                                      // nach der Schleife ist das Ergebnis in der iNoteGesamt drin...
        }
    

    Ach ja... das ist Win32 Konsolenanwendung... nicht MFC...


Anmelden zum Antworten