2016-10-19 4 views
0

Schreiben Sie eine Funktion, die von einem Schüler erhaltene Noten in 3 Fächern empfängt, und gibt den Durchschnittswert und den Prozentsatz dieser Zeichen in zurück. Rufen Sie diese Funktion von main() auf und drucken Sie die Ergebnisse in main().Wie finden Sie den Durchschnitt und den Prozentsatz der gesamten Marken mit Funktion. C++

#include<iostream> 

using namespace std; 

int mark() 
{ 
    int mark[3]; 
    int sum; 
    float *average, *percentage; 
    cout << "Enter the marks of urdu, english and islamiat out of 100" << endl; 
    cin >> mark[1] >> mark [2] >> mark [3]; 
    sum = mark[1] + mark[2] + mark[3]; 
    *average = sum/3; 
    *percentage =(sum/300)*100; 
} 


int main() 
{ 
    int x, y; 
    mark(); 
    return 0; 
} 
+0

#include mit Namespace std; int Marke() { int Marke [3]; int Summe; Float * Durchschnitt, * Prozentsatz; cout << "Geben Sie die Zeichen von Urdu, Englisch und Islamiat von 100" << endl; cin >> markieren [1] >> markieren [2] >> markieren [3]; Summe = Markierung [1] + Markierung [2] + Markierung [3]; * Durchschnitt = Summe/3; * Prozentsatz = (Summe/300) * 100; } int main() { int x, y; markieren(); Rückgabe 0; } –

+0

Bitte bearbeiten Sie die Frage und nicht den Buchungscode als Kommentar. – UKMonkey

+0

Hinweis: Ihre Markierungsfunktion gibt nichts zurück, daher sollte der Typ ungültig sein. –

Antwort

0

Übergeben Sie die Zeiger auf Durchschnitt und Prozentsatz als Argumente für Ihre Funktion. Auf diese Weise haben Sie Zugang zu ihnen von Main.

Übrigens würden Sie normalerweise die Eingabe in main (oder eine zweite Funktion) lesen und die Werte als Argumente an Ihre Funktion übergeben. Es ist besser, den Code testbarer und wiederverwendbarer zu machen.

0

Dieses Programm funktioniert!

#include <iostream> 
#include <string> 

using namespace std; 

void mark(float *average) 
{ 
int markg[3], sum; 
string mg[] = { "first", "second", "third" }; 
cout << "Enter the marks of urdu, english and islamiat out of 100" << endl; 
    for (int i = 0; i < 3; ++i) { 
     cout << "Enter " << mg[i] << " mark:"; 
     cin >> markg[i]; 
    } 
sum = markg[0] + markg[1] + markg[2]; 
*average = sum/3; 
} 

int main() 
{ 
float average; 
mark(&average); 
cout << "Average = " << average << endl; 
return 0; 
} 

Ich habe einen Zeiger verwendet. Ich habe markg [] verwendet, um es von der Funktion mark() zu unterscheiden. Ich habe den Benutzer jede Marke einzeln eingeben. Wenn Sie cin >> markg [1] ... verwenden, kann dies zu Fehlern führen. Sie können mit getline eine Zeichenfolge eingeben und dann analysieren, was Sie davon brauchen. Ich wählte die einfachere Methode. Wie Sie Durchschnitt und Prozent definiert haben, sind sie gleich. Vielleicht möchten Sie Ihren Professor um Klärung bitten. Ich hoffe, dass Sie diese Hinweise hilfreich finden.

Verwandte Themen