#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main ( )
{
int n;
cout<<"Enter number of subscribers: ";
cin>>n;
struct subscriber
{ int number;
char FIO[40];
char address[50];
char pnumber[10];
int duty;
}s[n];
int i;
for (i=0;i<n;i++)
{ cout<<"Number: "; cin>>s[i].number;
cout<<"FIO: "; cin>>s[i].FIO;
cout<<"Address: "; cin>>s[i].address;
cout<<"Phone number "; cin>>s[i].pnumber;
cout<<"Duty: "; cin>>s[i].duty;
}
float max=0;
int imax= -1;
cout<<"Result"<<endl;
for (i=0;i<n;i++)
if (s[0].pnumber == '2' && s[1].pnumber == '2')
if (s[i].duty> max ) { max= s[i].duty; imax=i;}
if (imax> -1)
{
cout<<"Number: "<<s[imax].number<<endl;
cout<<"FIO: "<<s[imax].FIO<<endl;
cout<<"Address: "<<s[imax].address<<endl;
cout<<"Phone number: "<<s[imax].pnumber<<endl;
cout<<"Duty: "<<s[imax].duty<<endl;
} else cout<<"No debtors were found"<<endl;
return 0;
}
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;
}