.


:




:

































 

 

 

 


. - (: , , , )




:

- (: , , , ). .

Microsoft Visual Studio 2013 ( Win32 Console Application) (Empty project). .cpp, .

:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

struct Sotr //

{

char fio[64]; //

char date[16]; //

char dolg[32]; //

double okl; //

};

 

struct List //

{

Sotr sotr; //

List *pNext; //

};

 

//

void addFirst(List *& pF, //

List* p) //

{

p->pNext = pF;

pF = p;

}

//

List * delFirst(List *&pF) //

{

if (pF == 0) return 0;

List *p = pF;

pF = pF->pNext;

return p;

 

}

//

bool add(List *&pF, List * pZad, List *p)

{

// true false

if (pZad == pF) //

{

p->pNext = pF;

pF = p;

return true;

}

 

List *pPred = pF; // pZad

while (pPred->pNext!= pZad && pPred->pNext)

pPred = pPred->pNext;

if (pPred->pNext == 0) return false; // pZad

p->pNext = pZad;

pPred->pNext = p;

return true;

}

// p

List * del(List*& pF, List *p) //

{

if (pF == 0) return 0;

if (pF == p) //

{

pF = pF->pNext;

return p;

}

else

{

List *pPred = pF; // p

while (pPred->pNext!= p && pPred->pNext)

pPred = pPred->pNext;

if (pPred->pNext == 0) return 0; // p

pPred->pNext = p->pNext;

return p;

}

while (delFirst(pF)); //

}

 

int main(int argc, char* argv[])

{

List *pF = 0; //

List *p;

//

char Ch; //

do

{

p = (List *)malloc(sizeof(List)); //

printf("\nFIO: ");

fflush(stdin); gets_s(p->sotr.fio);

printf("Date: ");

fflush(stdin); gets_s(p->sotr.date);

printf("Dolg: ");

fflush(stdin); gets_s(p->sotr.dolg);

printf("Okl=");

fflush(stdin); scanf_s("%lf", &p->sotr.okl);

addFirst(pF, p); //

printf("For continue press Y or y else any key! ");

Ch = _getche(); //

} while (Ch == 'Y' || Ch == 'y');

//

for (List *pi = pF; pi; pi = pi->pNext) //

printf("\n%s %s %s oklad=%.2f", pi->sotr.fio, pi->sotr.date,

pi->sotr.dolg, pi->sotr.okl);

 

//

for (List *pi = pF; pi->pNext;)

{

//

double min = pi->sotr.okl;

List *pmin = pi;

for (List *pj = pi->pNext; pj; pj = pj->pNext)

if (pj->sotr.okl<min)

{

min = pj->sotr.okl;

pmin = pj;

}

if (pi!= pmin) // , pi

{

del(pF, pmin);

add(pF, pi, pmin);

}

else pi = pi->pNext;

}

//

printf("\nSrting:");

for (List *pi = pF; pi; pi = pi->pNext) //

printf("\n%s %s %s oklad=%.2f", pi->sotr.fio, pi->sotr.date,

pi->sotr.dolg, pi->sotr.okl);

printf("\nFor exit press any key ");

system("pause"); // ,

return 0;

}

 





:


: 2015-10-01; !; : 749 |


:

:

, , .
==> ...

1726 - | 1428 -


© 2015-2024 lektsii.org - -

: 0.013 .