#include<iostream.h>
struct none{
double a;
none *next;
};
double ave(none *head) {
if(head == NULL)
return 0;
int i = 0;
double sum = 0;
none *h = head;
while(h){
sum += h->a;
h = h->next;
i++;
}
return sum/i;
}
void showlist(none *head) {
none *h = head;
while(h) {
cout << h->a << endl;
h = h->next;
}
}
void create(none *&head) {
none *p;
cout << "score\n";
int score;
cin >> score;
while(score){
p = new none;
p->next = head;
head = p;
p->a = score;
cout << "score:\n";
cin >> score;
}
}
void del_maxmin(none *head) {
none *h,*max,*min;
if(head == NULL) return;
max = min = h = head;
while(h){
if(h->a > max->a) max = h;
if(h->a < min->a) min = h;
h = h->next;
}
if(max == head){
head = head ->next;
delete head;
}
else{
none *p = head;
while(p->next != max) p = p->next;
p->next = max->next;
delete max;
}
if(min == head){
head = head ->next;
delete head;
}
else{
none *p = head;
while(p->next != min) p = p->next;
p->next = min ->next;
delete min;
}
}
int main() {
none *head = NULL;
create(head);
showlist(head);
del_maxmin(head);
showlist(head);
cout << endl << ave(head) << endl;
}