2016-10-19 2 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 << "Введите отметки урду, английский и исламат из 100" << endl; cin >> mark [1] >> mark [2] >> mark [3]; sum = mark [1] + mark [2] + mark [3]; * average = sum/3; * percent = (сумма/300) * 100; } int main() { int x, y; mark(); return 0; } –

+0

Пожалуйста, отредактируйте вопрос, а не разместите его как комментарий. – UKMonkey

+0

Sidenote: ваша функция mark не возвращает ничего, поэтому тип должен быть недействительным. –

ответ

0

Передайте указатели в среднем и процентах в качестве аргументов вашей функции. Таким образом, у вас будет доступ к ним из основного.

Кстати, вы обычно читали ввод в основной (или второй функции) и передавали значения в качестве аргументов вашей функции. Это лучший дизайн, чтобы сделать ваш код более проверяемым и многоразовым.

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 [], чтобы отличить его от функции mark(). У меня пользователь вводит каждую отметку по одному. Если вы используете cin >> markg [1] ... Это может привести к ошибкам. Вы можете использовать getline для ввода строки, а затем проанализировать, что вам нужно от нее. Я попробовал более простой метод. Как вы определили средний и процентный, они одинаковы. Вы можете попросить у профессора разъяснения по этому вопросу. Я надеюсь, что вы найдете это пособие полезным.