Консультация № 187687
22.12.2013, 21:47
99.00 руб.
0 5 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Необходимо модифицировать данную программу, чтобы он выполняла конкретную задачу, а именно:
Найти среднее арифметическое элементов непустого списка L. Реализовать в виде линейного однонаправленного списка.
Код в приложении. Спасибо.



Приложение:
#include <stdio.h>
#include <iostream>


struct Node {
int key;
Node *p;
};
Node*addend(Node* beg, int k);
Node*find(Node* beg, int k);
void print(Node *beg);

int main(){
int dat;
Node*st=NULL;
for (int i=1;i<=5;i++){
scanf("%d", &dat);
st=addend(st,dat);
}
print(st);

printf("find\n");
scanf("%d", &dat);
Node*pf=find(st,dat);
if(pf!=0) printf("find %d\n", pf->key);
else printf("no\n");
print(st);

return 0;
}


Node*addend(Node* beg, int k){
Node*pt;
Node*pv=new Node;
pv->key=k;
pv->p=NULL;
if (beg==NULL){
printf("add1 %d\n", pv->key);
return pv;
}
else {
for (pt=beg;pt->p!=NULL;pt=pt->p); pt->p=pv;
printf("add %d\n", pv->key);return beg;
}
}

Node*find(Node* beg, int k){
Node*pv=beg;
while(pv!=NULL){
if(pv->key==k) return pv;
pv=pv->p;
}
return NULL;
}
void print(Node* beg){
for (Node* pv=beg;pv!=NULL;pv=pv->p)
printf("%d ", pv->key);
printf("\n");
}

Обсуждение

Неизвестный
22.12.2013, 22:09
общий
Обязательно пользоваться приведенным кодом или можно написать полностью свой?
Неизвестный
22.12.2013, 22:19
общий
необходимо пользоваться именно этим кодом..
Неизвестный
22.12.2013, 22:32
общий
это ответ
Здравствуйте, Минаев Александр!
Что бы подсчитать среднее арифметическое всех значений не пустого односвязного списка используя данный код, необходимо в начало программы добавить объявление функции
Код:
double Average(Node *beg);

А в конец, добавить описание функции:
Код:

double Average(Node *beg)
{
double result = 0;
int num;

Node *pv = beg;

for (Node* pv = beg; pv!=NULL; pv = pv->p)
{
result += pv->key;
++num;
}

return result / num;
}


Функция будет возвращать значение типа double в необходимом месте (По мере вызова).

Исходный код программы с примером реализации [1.4 кб]
5
Неизвестный
22.12.2013, 22:41
общий
Спасибо большое.
Я хотел бы поинтересоваться . Мне необходимо сделать ещё 3 задания на основе данного кода, все задания также связанны с модификацией, сколько это примерно будет стоить? Нужно ли для этого обязательно создавать мини-форум?
Неизвестный
22.12.2013, 22:54
общий
Дополнение к ответу (Не обязательна/Зависит от компилятора):
В 4 строке необходимо переменной 'num' присвоить значение 0.
Код:
int num = 0;

В некоторых компиляторах может избавить от ошибки.

Проверял на MinGW. Работает в обоих случаях.
Форма ответа