У тебя ошибка потому что pnumber - это массив символов, и ты пытаешься сравнить весь массив с одним символом. Тебе нужно было писать
s[0].pnumber[0] == '2' && s[1].pnumber[1] == '2'
, чтобы сравнить первые два символа массива с двойками. Кроме того зачем тебе переменная
max
, которая является
float
при том, что в структуре
duty
(если использовать правильный перевод, то debt) хранится в виде
int
, ведь нигде кроме присвоений она не используется. Вот что получилось у меня, может узнаешь что-то новое.
Код
#include <iostream>
struct subscriber
{
int number;
std::string name;
std::string address;
std::string phone_number;
int debt;
};
int main(int argc, char** argv)
{
int subscribers_amount = 0;
std::cout << "Enter the number of subscribers: " << std::endl;
std::cin >> subscribers_amount;
std::vector<subscriber> subscribers(subscribers_amount);
for (auto& subscriber : subscribers)
{
std::cout << "Number: "; std::cin >> subscriber.number;
std::cout << "Debt: "; std::cin >> subscriber.debt;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Name: "; std::getline(std::cin, subscriber.name);
std::cout << "Address: "; std::getline(std::cin, subscriber.address);
std::cout << "Phone number: "; std::getline(std::cin, subscriber.phone_number);
std::cout << std::endl;
}
int max_debt_subscriber = -1;
for (int i = 0; i < subscribers.size(); i++)
{
if (subscribers[i].phone_number.substr(0, 2) == "22")
{
if (subscribers[i].debt > subscribers[max_debt_subscriber].debt)
{
max_debt_subscriber = i;
}
}
}
if (max_debt_subscriber != -1)
{
std::cout << "Number: " << subscribers[max_debt_subscriber].number << std::endl;
std::cout << "Name: " << subscribers[max_debt_subscriber].name << std::endl;
std::cout << "Address: " << subscribers[max_debt_subscriber].address << std::endl;
std::cout << "Phone number: " << subscribers[max_debt_subscriber].phone_number << std::endl;
std::cout << "Debt: " << subscribers[max_debt_subscriber].debt << std::endl;
}
else
{
std::cout << "No subscribers found" << std::endl;
}
return 0;
}