Структура содержит следующие поля: название процессора... Как сделать более универсальной
Структура содержит следующие поля: название процессора, внутренняя частота процессора, количество ядер, объем кэш-памяти. Написать функцию для нахождения двухъядерного процессора с самой низкой внутренней частотой. как сделать более универсальной. Поменял, но пока без функции(ее наптшу позже). Вопрос: КАК таблицу сделать одно под одним без смещения. Иммею ввиду идет таблица Название процессора, кол во ядер и т.д а цифр под ними
#include<iostream>
#include<string>
#include<stdio.h>
#include<ctime>
using namespace std;
struct PC
{
char processor[60];
float GHZ;
int Yadra;
int cache_memory;
};
int main()
{
setlocale(LC_ALL, "ru");
srand(time(0));
int t = 0, ch, elements=0;
struct PC compon[10];
do
{
cout << "Введите названия процессоров: ";
cin >> compon[t].processor;
cout << "Введите внутренняя частота процессоров(ГГц): ";
cin >> compon[t].GHZ;
cout << "Введите Количества ядер: ";
cin >> compon[t].Yadra;
cout << "Введите Объемы кэш-памяти(Мб): ";
cin >> compon[t].cache_memory;
cout << "Нажмите q для завершения ввода: ";
t++;
elements++;
} while (scanf_s("%d", &ch) == 1 && t < 10);
cout << endl;
cout << "Названия процессоров: " << "Внутренняя частота процессоров(ГГц): " << "Количества ядер: " << "Объемы кэш-памяти(Мб): " << endl;
for (int i = 0; i < elements; i++)
{
cout << compon[i].processor <<" "<< compon[i].GHZ <<" "<< compon[i].Yadra <<" "<< compon[i].cache_memory << endl;
}
cout << "двухъядерный процессор с самой низкой внутренней частотой: ";
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Запихать все PC в массив/вектор/etc и применить min_element с соответствующим компаратором, что-то типа
min_element(begin(PCs),end(PCs),
[](const PC& a, const PC& b)
{
return tie(abs(a.yadra-2),a.GHZ) < tie(abs(b.yadra-2),b.GHZ);
});
Ну и убедиться, что вернулся итератор, указывающий на двухпроцессорный PC.