Сергей Омельчук
Сергей Омельчук

в чем проблема программы? с++

задание: Задано структуру "Ноутбук", содержащую поля "Цена", "Время
автономной работы ". Создать базу данных с 4 ноутбуков и записать в

бинарный файл, имя которого задается с клавиатуры. Найти в файловой базе

данных ноутбук, время автономной работы которого больше заданного, а цена

минимальная.

прогу написал, но она работает до цикла нахождения минимума "часработы"

#include

#include

#include

#include

#include

int main ()

{int i,n,schasrob,min;

char imya[10];

struct notebook

{char name;

int cina;

int chasrob;

bool exist;};

notebook nb[4];

printf ("\tVvedite imya fayla: \n");

cin.getline(s, 20);

strcat(s,".bin");

for (n=0;n<4;n++)

{system ("cls");

printf ("\tVvedite imya nouta\n");

scanf ("%s",&nb[n].name);

printf ("\n\tVvedite cinu\n");

scanf ("%d",&nb[n].cina);

printf ("\n\tVvedite chasroboti\n");

scanf ("%d",&nb[n].chasrob);}

FILE* wFile;

wFile = fopen ("s","wb");

for (i=0;i<4;i++)

{if (nb[i].exist==false)

continue;

else

fwrite (&nb[i],sizeof(notebook)-sizeof(bool),1,wFile);}

fclose (wFile);

getch ();

printf ("\n\tVkazhit' shukaniy chas roboti\n\t(programa vyvede chas, bilshy zadanoho)\n");

scanf ("%d",&schasrob);

nb[1].cina=min;

for (n=0;n<4;n++)

{if (nb[n].cina
min=nb[n].cina;}

for (n=0;n<4;n++)

{system ("cls");

if (nb[n].chasrob>schasrob && nb[n].cina==min)

printf ("\t%s - nazva shukanogo noutbuka",nb[n].name);

else

printf ("Noutbuka nemaye v fayloviy bazi");

}

getch ();

return 0;

}

КБ
Константин Бурлаков

в структуре этот член char, а не стринг
scanf ("%s",&nb[n].name);
в один символ запихать строку не реально

в
--
nb[1].cina=min;
for (n=0;n<4;n++)
{if (nb[n].cina< min)
min=nb[n].cina;}
--
(я предпочитаю в таком запись
for (n=0;n<4;n++)if (nb[n].cina< min)min=nb[n].cina;
или
for (n=0;n<4;n++){
if (nb[n].cina< min)min=nb[n].cina;
}
)

лучше
min=nb[0].cina;// стоит назначить min по начальному массива, а не второй в массиве по неопределенному min
for (n=1;n<4;n++){//и считать сравнивая уже следующие за нулевым. т.е. от 1
if (nb[n].cina< min)

может что ещё
(сама прога -смесь С и С++. в С++ смесь сгодится, но неоптимальна)

Похожие вопросы
Проблема с Autorun-программой. Delphi.
Проблема с программой С++(массивы)
Здравствуйте) У меня проблема с программой.
Проблема в программе Subtitle Workshop.
Программа - Visual Basic, проблема.
Проблема с кодом консольной программы
Проблемы с удалением программы с компьютера!
Проблемы с программами...
проблема программы флешки
проблема с программой в delphi