Member 13246826 Ответов: 1

У меня проблема с кодом


#include "stdafx.h"
#include <iostream>
using namespace std;
void f(int&, int);
int main()
{
 int N, s;
 cout << "how many? ";
 cin >> N;
 f(N, s);
 cout << "The result = " << (double) s / N << endl;
 return 0;
}
void f(int &n, int s)
{
 int m;
 cout << "enter " << n << " integers:- " << endl;
 for (; n > 0; n--) {
cin >> m;
s = s + m;
 }
}


Что я уже пробовал:

Внимательно прочитайте программу, приведенную ниже. Программа содержит ошибки.
(i) правильно определить ошибки, описать их и объяснить их причины в книге ответов.
Имейте в виду, что неправильное выявление ошибок приведет к снижению ваших оценок.
(15 марок)
(ii) внести минимальное количество изменений в программу для исправления этих ошибок. Сохранить
исправлена программа в назначенную для этого вопроса папку.
(10 баллов)

Afzaal Ahmad Zeeshan

Вы должны сами делать домашнее задание. Извиняюсь.

CPallini

Вы уверены, что это экзаменационный вопрос? Программа довольно уродливая...

1 Ответов

Рейтинг:
2

Mehedi Shams

Привет Член 13246826,

Поскольку это ваше домашнее задание, вам нужно подумать об этом. Я вижу проблему, но не должен говорить вам о ее решении.

Однако я могу дать вам подсказку-прочитайте о передаче параметра по значению и передаче параметра по ссылке. Я надеюсь, что вы найдете ответ и исправите код по мере необходимости.


Member 13246826

Здравствуйте Мехед Шамс,

Спасибо за подсказку, это не домашнее задание, это прошлый экзаменационный вопрос для PSP1, c++ .

Поскольку мой экзамен завтра, вот почему я пытался их решить.

Mehedi Shams

Ладно, понял.

Но все же-пожалуйста, следуйте подсказке. Это так тривиально и не может быть упущено. Надеюсь, вы найдете ответ :)!

Просто еще один намек - фактическое значение "N" уменьшается. Видишь, почему?