Выводит только одно значение, остальные не выводит c++
вопрос такой, если указываю характеристики компьютера выше, чем минимальные характеристики всех игр, то выводит только одну игру- которую может потянуть компьютер, а остальные не выводит (в данном случае 2-ю), хотя цикл вроде бы правильный и в теории должно выдавать всё, что имеется, сверяя с условиями
Само задание: 2) Вывести на экран названия всех компьютерных игр, которые могут быть установлены на заданном компьютере. Характеристики компьютера – частота процессора, объемы памяти RAM и HDD задаются с клавиатуры.
Проблема наверное где-то здесь:
int count = 0;
for (int i = 0; i < N; i++) // 2 задание
{
if ((characteristics[i].cpu >= collection[i].min_cpu) && (characteristics[i].ram >= collection[i].min_ram )&& (characteristics[i].hdd >= collection[i].min_hdd))
{
printf("Compatible games:\n");
printf("\n---------\n");
printf("%s\n", collection[i].title);
printf("\n---------\n");
count++;
}
}
Полная программа:
#include <stdio.h>
#include <locale>
#include <cstdlib>
#include <cstring>
#include <Windows.h>
#define gets_s(x, len) fgets((x), (len) + 1, stdin)
using namespace std;
struct pc
{
unsigned int cpu;
unsigned int ram;
unsigned int hdd;
};
struct game
{
char title[100];
char players[100];
char platform[100];
char genre[100];
char developer[100];
int year;
unsigned int min_cpu;
unsigned int min_ram;
unsigned int min_hdd;
};
const int N = 2;
const int M = 1;
game collection[N];
pc characteristics[M];
int main()
{
setlocale(LC_ALL, "eng");
for (int i = 0; i < N; i++)
{
printf("\n\nEnter data for games №%d\n", i + 1);
printf(" title - ");
SetConsoleCP(1251);
gets_s(collection[i].title, 99);
SetConsoleCP(866);
printf(" platform - ");
SetConsoleCP(1251);
gets_s(collection[i].platform, 99);
SetConsoleCP(866);
printf(" players- ");
SetConsoleCP(1251);
gets_s(collection[i].players, 99);
SetConsoleCP(866);
printf(" (genre) - ");
SetConsoleCP(1251);
gets_s(collection[i].genre, 99);
SetConsoleCP(866);
printf(" developer - ");
SetConsoleCP(1251);
gets_s(collection[i].developer, 99);
SetConsoleCP(866);
printf(" year- ");
scanf("%d", &collection[i].year);
getchar();
printf(" (min_cpu - ");
scanf("%u", &collection[i].min_cpu);
getchar();
printf(" min_ram - ");
scanf("%u", &collection[i].min_ram);
getchar();
printf(" min_hdd - ");
scanf("%u", &collection[i].min_hdd);
getchar();
}
for (int i = 0; i < M; i++)
{
printf("\n\n Enter data for pc # %d\n", i + 1);
printf(" min_cpu- ");
scanf("%u", &characteristics[i].cpu);
getchar();
printf(" min_ram - ");
scanf("%u", &characteristics[i].ram);
getchar();
printf(" min_hdd- ");
scanf("%u", &characteristics[i].hdd);
getchar();
}
int count = 0;
for (int i = 0; i < N; i++) // 2 задание
{
if ((characteristics[i].cpu >= collection[i].min_cpu) && (characteristics[i].ram >= collection[i].min_ram )&& (characteristics[i].hdd >= collection[i].min_hdd))
{
printf("Compatible games:\n");
printf("\n---------\n");
printf("%s\n", collection[i].title);
printf("\n---------\n");
count++;
}
}
if (count == 0)
{
printf("\n---------\n");
printf("Your specifications are not suitable for games. \n");
printf("\n---------\n");
}
system("pause");
return 0;
}