2016-10-19 5 views
0

3人の科目で受講者が受け取ったマークを受け取って、 の平均とこれらのマークのパーセンテージを返す関数を作成します。 main()からこの関数を呼び出し、 の結果をmain()に出力します。関数を使用して合計マークの平均とパーセンテージを見つける方法。 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 using namespace std; int mark() { int mark [3]; int sum; float *平均、*パーセンテージ。 cout << "urdu、english、islamiatのマークを100" << endlに入力してください。 cin >> mark [1] >>マーク[2] >>マーク[3]; 合計=マーク[1] +マーク[2] +マーク[3]; *平均=合計/ 3; * percentage =(合計/ 300)* 100; } int main() { int x、y; mark(); return 0; } –

+0

コードをコメントとして投稿するのではなく、質問を編集してください。 – UKMonkey

+0

Sidenote:あなたのmark関数は何も返さないので、型は無効になります。 –

答えて

0

平均とパーセンテージのポインタを関数の引数として渡します。そうすれば、あなたはメインからアクセスできます。

ところで、通常はメイン(または第2の関数)の入力を読み込み、その値を関数の引数として渡します。コードをよりテスト可能かつ再利用可能にする方が良い設計です。

0

このプログラムは機能します。

#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; 
} 

私はポインタを使用しました。 私はmarkg []を使ってそれをfunction mark()から区別しました。 私は、ユーザが一度に1つずつ各マークを入力させる。 cin >> markg [1] ... を使用すると、エラーが発生する可能性があります。 getlineを使って文字列を入力し、必要なものを解析することができます。 私は簡単な方法を選びました。 平均とパーセントを定義したので、それらは同じです。あなたは教授にこの点についての説明を求めてもよいでしょう。 このアドバイスが役立ちますようにお願いいたします。

関連する問題