.


:




:

































 

 

 

 


. : ; ; ; ;




: ; ; ; ; ; .

1. .

2. , .

3. .

4. .

5. .


 

6. .

,

, , , . :

- , [3, 4];

- ;

- ;

- .

( , , , ..) , , .

, , . . [4].

+ 2 , , .

. , .. , . .

. , , 0. . 7.

  .
  .
  NULL
1-

7

, :

struct Inform {... }; // ( )

struct List1

{

Inform Inf;

List1 *pNext;

};

( pNext==NULL), , , . [3, 4].

. , ( ). , , . .

 

:

- (: , , , ). .

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, 63);

printf("Date: ");

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

printf("Dolg: ");

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

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;

}

 





:


: 2016-11-18; !; : 423 |


:

:

, .
==> ...

1432 - | 1373 -


© 2015-2024 lektsii.org - -

: 0.022 .