#include "stdafx.h" #include <list> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { list<float> *lst = new list<float>(); _tprintf_s(_T("Enter a floating point number or a non-number to end.\n")); float d; for (int i = 1;;i++) { _tprintf_s(_T("Element %4d: "), i); if (_tscanf_s(_T("%f"), &d) == 1) { lst->push_back(d); } else break; } int i = lst->size(); if (i > 0) { i--; int li = -1; for (list<float>::reverse_iterator it=lst->rbegin(); it != lst->rend(); it++, i--) { d = *it; if (d > 0) { li = i; break; } } float avg = -1; if (li > 1) { i = 1; int j = 0; float sum = 0; bool b = false; for (list<float>::iterator it=lst->begin(); (it != lst->end()) && (i <= li); it++, i++) { d = *it; if (b) { if (i % 2 == 0) { j++; sum += fabs(d); } } else if (d < 0) b = true; } if (j > 0) avg = sum / j; } _tprintf_s(_T("\nArray:")); for (list<float>::iterator it=lst->begin(); it != lst->end(); it++) { d = *it; _tprintf_s(_T(" %f"), d); } if (avg < 0) _tprintf_s(_T("\nAvg: N/A\n")); else _tprintf_s(_T("\nAvg: %f\n"), avg); } else _tprintf_s(_T("You haven\'t entered any number \n")); delete lst; return 0; } |