Итак, я сейчас учусь в школе, и мне нужно делать домашнее задание. Я новичок в C ++ и каким-то образом компилятор показывает мне ошибку в моем коде. По сути, у меня есть файл .txt
, в котором хранятся данные.
Файл .txt
выглядит примерно так:
5
Petras 23.25 10.50
Rimas 125.40 1.20
Romas 55.00 1.00
Jurgis 1000.90 0.25
Algis 15.00 25.50
Первая строка показывает, сколько людей в списке у нас есть, поэтому я создал целое число n
.
Далее у нас есть список людей. В списке указывается имя человека, сколько у него денег в другой валюте, а также указывается курс обмена на евро.
И проблема в том, что я пытаюсь найти сумму денег, которую они имеют в евро. Это мой код.
#define USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
const int Cn = 100;
const int Cname = 15;
int n;
struct listofpeople {
string name;
double MoneyInOtherCurrency;
double RateOfExchange;
double MoneyInEuros;
};
listofpeople A[Cn + 1];
void data();
void ChangeCurrency();
double sum(double C[], int m);
int main () {
data();
ChangeCurrency();
cout << sum(A[].MoneyInEuros, n);
return 0;
}
//-------------------------------------------------------
void data(){
ifstream is ("U2duom.txt");
is >> n;
char symbols[Cname + 1];
for(int i = 1; i <= n; i++){
is.ignore(80, '\n');
is.get(symbols, Cname);
A[i].name = symbols;
is >> A[i].MoneyInOtherCurrency;
is >> A[i].RateOfExchange;
}
}
//----------------------------------------------------------
void ChangeCurrency(){
for(int i = 1; i <= n; i++){
A[i].MoneyInEuros = A[i].MoneyInOtherCurrency*A[i].RateOfExchange;
cout << A[i].name << " " << A[i].MoneyInEuros << " " <<
A[i].MoneyInOtherCurrency << " " << A[i].RateOfExchange << endl;
}
}
//---------------------------------------------------------------
double sum(double C[], int m){
double a = 0;
for(int i = 1; i <= m; i++){
a= a + C[i];
}
return a;
}
И проблема в том, что компилятор показывает мне ошибку в строке, где я пытаюсь распечатать сумму. Кто-нибудь может мне помочь? Спасибо.
EDIT:
Мой компилятор показывает эту ошибку:
error: expected primary-expression before ']' token
Если я укажу элементы массива, которые я хочу использовать, например:
sum(A[n].MoneyInEuros, n);
Компилятор показывает эту ошибку:
cannot convert 'double' to 'double*' for argument '1' to 'double
sum(double*, int)'