Помогите решить задачу на c++
Вывести все элементы массива структур с индексами из заданного диапазона и вычислить сумму значений заданного поля этих элементов. Филателист, собирая марки, фиксировал информацию о них в массиве элементов, классифицируя марки по следующим признакам:
страна-производитель (массив символов, максимум – 50, в названии страны, если требуется, вместо пробелов используется знак подчеркивания),
год выпуска (целое в диапазоне 1900-2100), длина (беззнаковое целое),
ширина(беззнаковое целое),
ценность (беззнаковое целое). Порядок следования полей в структуре должен соответствовать вышеприведенному порядку следования признаков. Ввести N элементов массива. Для заданных нижнего i0 и верхнего i1 индексов (индексация начинается с нуля!) вывести информацию об элементах с индексами из диапазона [i0..i1] и вычислить суммарную ценность соответствующих марок. Перенос на новую строку осуществлять парой символов '\r\n' Пример входа: 7 2 4 Canada 1960 5 7 100 UK 1970 3 5 200 USA 1975 4 6 300 China 2000 7 10 20 Russia 1905 3 7 500 Germany 1988 3 6 150 Sweden 1990 4 8 255 Пример выхода: USA 1975 4 6 300 China 2000 7 10 20 Russia 1905 3 7 500 820
#include < iostream >
#include < vector >
using namespace std;
struct marka
{
char country[50];
size_t year;
size_t length;
size_t width;
size_t price;
void print()
{
cout << country << " " << year << " " << length << " " << width << " " << price << " ";
}
};
int main()
{
vector collection;
marka simple;
size_t size, start, stop, summ=0;
cin >> size >> start >> stop;
for (size_t i = 0; i < size; i++)
{
cin >> simple.country >> simple.year >> simple.length >> simple.width >> simple.price;
collection.push_back(simple);
}
cout << endl;
for (size_t i = start; i <= stop; i++)
{
collection[i].print();
summ += collection[i].price;
}
cout << summ;
}
ЗЫ: для переноса используйте "\r\n"... А что переносить то, если в примере все данные идут без переноса? Может быть в методе print вместо последнего " " нужно вставить "\r\n"?
unsigned int - слишком длинно писать. size_t - это оно и есть задефанное.