apantiseis_v3

Embed Size (px)

Citation preview

  • 8/13/2019 apantiseis_v3

    1/138

  • 8/13/2019 apantiseis_v3

    2/138

    C 3 .

    1

    1.1 -

    .

    2

  • 8/13/2019 apantiseis_v3

    3/138

    C 3

    1.2 : ).

    4. )100 -

    400,

    .

    http://c.bytes.gr 3

  • 8/13/2019 apantiseis_v3

    4/138

    C 3 .

    1.3

    7000, 10%

    7000 15000 20% ,

    .

    1.4 .-

    12, 3, 10, 7, 1, 4, 0.

    15.

    12,10 & 4

    3,7 &1. -:

    12-3+10-7-1+4=15

    0,15

    .

    4

  • 8/13/2019 apantiseis_v3

    5/138

    C 3

    1.5 :

    C .

    C .

    .

    -.

    .

    1.6 .-

    12, 15, 145 -

    . ;

    12 () -

    .

    15 (7.5) 145 -(145).

    -,

    .

    http://c.bytes.gr 5

  • 8/13/2019 apantiseis_v3

    6/138

    C 3 .

    2

    2.1 a,b, c-

    :

    main() {

    a 5inta,b,c=3;

    b 2a=b=2;

    c 3a=c+b;

    }

    2.2 a,b, c-

    :

    #defineMM 23

    main()

    {a 6

    constintc=3;b 28

    inta,b;c 3

    a=4+(b=2);

    b=c+b+MM;

    }

    2.3 : (;).#defineMM 23;

    main()

    {

    constintc=3;

    (float ...) .

    inta,b;

    a=2;

    floatd;

    d=4.3

    -(;).

    a=4+(b=2);

    MM=10;

    3=a;

    . .

    c=c+b+MM;3 .

    }c const().

    6

  • 8/13/2019 apantiseis_v3

    7/138

    C 3

    2.4 a,b, c:

    main()

    {

    inta,b,c=3;

    a=b=2;ab2

    a=c>b;

    b=b==1;

    c=printf("");

    a 1 c>b (3>2) .

    }

    2.5 :

    -

    .

    C (-

    ).

    1 0.

    C, , 0.

    #define-

    .

    2.6 a,b, c5,10, 15 ,

    (1 , 0 ) -

    :

    a==(c-b) 1a>b || b>c 0

    a==5 && c==15 1a==5 && c>20 0

    2.7 3,7, 21 .,-

    .

    main()

    {

    inta,b,c;

    float mo;

    a=3;

    b=7;

    c=21;

    mo=(a+b+c)/3.0;

    }

    a 1

    b 0

    c 5

    b 0 b==1(2==1) .

    c 5, printf() -(5"") .

    http://c.bytes.gr 7

  • 8/13/2019 apantiseis_v3

    8/138

    C 3 .

    2.8

    .

    main()

    {

    inta,b,c;

    float mo;

    a=rand();

    b=rand();

    c=rand();

    mo=(a+b+c)/3.0;

    }

    2.9 :

    #include stdio.h

    #include

    #define12

    #defineTWO 78 #define4

    main()

    {

    intc=3,a,b,;

    floatc=5.6;

    b= ONE + TWO;

    a=printf("C ");

    c -. !

    printf(''); : "".

    }

    8

  • 8/13/2019 apantiseis_v3

    9/138

    C 3

    3

    3.1 ,

    , .

    #include

    #include

    main()

    {

    float a,b,c,mo;

    printf(":");

    scanf("%f %f %f",&a,&b,&c);

    mo=(a+b+c)/3;

    printf("%f\n",mo);

    }

    3.2 ;

    main()

    {

    inta=4,b=5;

    charch; 4 5 A 45 654ch='A';5printf("%d %d %c",a,b,ch);

    Aprintf("%d %d %d\n",a,b,ch);

    printf("%d\n%d \n%c\n",a,b,ch);

    printf("\n");

    }

    pr intf(), -pr intf()

    65 ASCII '' ().

    3.3

    3 -

    , , .

    -

    .

    : 6: 2

    : 106,2,10 186,2,10 1206,2,10 6

    #include

    #include

    main()

    {

    float a,b,c,mo,gin,sum;printf(":");

    http://c.bytes.gr 9

  • 8/13/2019 apantiseis_v3

    10/138

    C 3 .

    scanf("%f",&a);

    printf(":");

    scanf("%f",&b);

    printf(":");

    scanf("%f",&c);

    mo=(a+b+c)/3;

    gin=a*b*c;

    sum=a+b+c;

    printf("%f, %f, %f %f\n",a,b,c,sum);

    printf("%f, %f, %f %f\n",a,b,c,gin);

    printf("%f, %f, %f %f\n",a,b,c,mo);

    }

    3.4 ;

    main()

    {inta,b;

    floatf;

    charch;

    printf("%d %d %d\n",sizeofa,sizeoff,sizeofch);

    scanf("%d %f %c",&a,&f,&ch);

    printf("%d %f %c\n",a,f,ch);

    }

    pr intf()(bytes) a, fch4, 4 1 .

    scanf()()a, fch.

    printf()a, fch.

    3.5 :

    main()

    {

    inta,b;

    scanf("%d %d",&a,&b);

    if(a>b)

    printf("%d\n",a);else

    printf("%d\n",b);

    }

    scanf()a, b.

    H ifa-b. , ab. -

    .

    10

  • 8/13/2019 apantiseis_v3

    11/138

    C 3

    3.6

    .

    #include

    #include

    main(){

    inta,b,c,max;

    scanf("%d %d %d",&a,&b,&c);

    if(a>b)

    max=a;

    ifmaxa b.

    else

    max=b;

    if(max>c)

    printf("%d\n",max);

    if maxc. -.else

    printf("%d\n",c);

    }

    3.7 :

    scanf()-

    .

    C -

    .

    if(a=5).

    exit(), .

    sizeof..

    sizeof(char).

    3.8 -

    (,) (*)

    .

    #include

    #include

    main(){

    inta,b;

    scanf("%d,*%d",&a,&b);

    printf("%d\n",a+b);

    , * %dscanf() .

    }

    3.9

    (= 2**, =

    *2).

    " :".

    3.141592.

    http://c.bytes.gr 11

  • 8/13/2019 apantiseis_v3

    12/138

    C 3 .

    #include

    #include

    #definepi 3.141592

    main()

    {

    floataktina,per,emvado;

    printf(":");

    scanf("%f",&aktina);

    per=2*pi*aktina;

    emvado=pi*aktina*aktina;

    printf("%f %f

    %f\n",aktina,per,emvado);

    }

    3.10

    . -(+ ) .

    #include

    #include

    main()

    {

    floatposo,fpa,synolo;

    printf(":");

    scanf("%f",&poso);

    printf(":");

    scanf("%f",&fpa);

    synolo=poso+poso*fpa;

    printf(": %f\n",synolo);

    }

    3.11 -

    ,. -

    0.23, 0.70 0.15.

    .

    #include

    #include

    main()

    {

    intplithos;

    floatposo=0;

    chareidos;

    printf(":");

    scanf("%d %c",&plithos,&eidos);

    if(eidos=='E') poso=plithos*0.23;

    12

  • 8/13/2019 apantiseis_v3

    13/138

    C 3

    if(eidos=='A') poso=plithos*0.70;

    if(eidos=='T') poso=plithos*0.15;

    printf("%f\n",poso);

    }

    3.12 ()/2

    , .

    -

    . -

    .

    #include

    #include

    main()

    {

    floaty,b,dms;

    printf(":");

    scanf("%f %f",&y,&b);

    dms = b/(y*y);

    printf("%f %f : %f\n",y,b,dms);

    }

    3.13

    .

    "",

    1.3, "".

    #include

    #include

    main()

    {

    floatlitra,poso,timi_ana_litro;

    printf(":");

    scanf("%f",&litra);

    printf(":");

    scanf("%f",&poso);

    timi_ana_litro=poso/litra;

    if(timi_ana_litro>1.3)

    printf("\n");

    else

    printf("\n");

    }

    3.14

    a b .-

    .

    #include

    http://c.bytes.gr 13

  • 8/13/2019 apantiseis_v3

    14/138

    C 3 .

    #include

    main()

    {

    inta,b,temp;

    printf(":");

    scanf("%d %d",&a,&b);

    printf("a=%d b=%d\n",a,b);

    ab.

    temp=a;

    a=b;

    b=temp;

    printf("a=%d b=%d\n",a,b); ab.

    }

    14

  • 8/13/2019 apantiseis_v3

    15/138

    C 3

    4

    4.1 x100

    . x

    . x

    x++; 101 100

    ++x; 101 101

    x--; 99 100

    --x; 99 99

    x-x; 100 0

    4.2 ;

    main()

    {

    inta,b,aa,bb,x,y;H a 101x = y = 100;H b 100

    a = ++x;H aa 102

    b = y++; H bb 101aa = ++x;

    bb = y++;

    printf("a %d\n",a);

    printf("b %d\n",b);

    printf("aa %d\n",aa);

    printf("bb %d\n",bb);

    }

    a=++xx1 (101) a++xx(101).

    b=y++y 1 (101) by++ y(100).

    , aa=++xaa++xx(102).

    bb=y++bby++- y(101 y++).

    4.3 y100 .xy-

    ;

    x y

    x=y; 100 100

    x = --y * 4; 396 (99*4) 99

    x = y = y++; 100 101

    x = y == 100; 1 100

    x = y == y++; 0 101

    x = y == ++y; 1 101

    http://c.bytes.gr 15

  • 8/13/2019 apantiseis_v3

    16/138

    C 3 .

    4.4 :

    intx,y,z;

    z = 22;

    x = 10;

    y = 3;

    z = (x / y) * y;

    xz-

    :

    x == z xz

    x < z xz

    x > z xz

    if(x==z) printf("x==z");

    if(x

  • 8/13/2019 apantiseis_v3

    17/138

    C 3

    4.8 ;

    main()0{13

    inta,b,c;1

    a=5;

    b=8;

    printf("%d \n%d\n %d\n",a & b, a | b, a && b);

    }

    5 101 8 1000 bitwise a &ba | b0000 (0) 1101 (13) .

    &&(AND) a && b1 () (a b)

    (0).

    4.9 :

    i++i1 ++i.

    ++ -- .

    bitwise AND (&)0,

    0.

    = .

    5/2 int(2).

    4.10 x5, y100, a0,

    .

    xy;

    x y

    x = y>x || a 1 100 OR (||). x ||a 1 x -(5). y>1 x 1.

    x = y | a; 100 100 bitwise OR y (1100100) a (0000000) 1100100 100.

    y = x & a; 5 0 bitwise AND x (101) a(000) 000 0.

    x = x & y; 4 100 bitwise AND x (0000101) y (1100100) 0000100 4.

    x = x | y; 101 100 bitwise OR x (0000101) y (1100100) 1100101 101

    x = --x && y || a; 1 100 , AND (&&) OR (||). -x && y (1) (0). 1 ||a . x 1.

    http://c.bytes.gr 17

  • 8/13/2019 apantiseis_v3

    18/138

    C 3 .

    4.11 ,

    bit :

    bit 7,6,5, 4 (16

    0 15), bit 3 2 (0-,

    1-, 2-, 3-), bit 1

    (0-, 1-) bit 0 .

    /(116)

    (.. ). -

    "-

    ".

    #include

    #include

    main()

    {

    intar;

    intok,simeio,alarm;

    printf(":");

    scanf("%d",&ar);

    simeio=(ar&240)>>4;

    alarm=(ar&12)>>2;

    bit (7,6,5 & 4) -byte.

    ok=(ar&2)>>1;bit (3 & 2) byte.

    if(ok==0) bit.{

    printf("\n");

    exit(1);}

    printf(": %d :",simeio+1);

    if(alarm==0) printf("OK\n");

    if(alarm==1) printf("\n");

    if(alarm==2) printf("\n");

    if(alarm==3) printf("\n");

    }

    240 11110000. H bitwise AND arbit 7,6,5,4. 4 -

    bit byte -0 15.

    12 00001100. H bitwise AND arbit 3 2. 2

    bit byte

    0 3.

    2 00000010. H bitwise AND arbit No 1 ().-

    bit byte 1 0.

    4.12 -

    .

    18

  • 8/13/2019 apantiseis_v3

    19/138

    C 3

    #include

    #include

    main()

    {

    intar;

    printf(":");

    scanf("%d",&ar);

    ar%2

    ar2.0 , -.if(ar%2==0)

    printf("%d \n",ar);

    else

    printf("%d \n",ar);

    }

    4.13 ,

    , -

    .

    #include

    #include

    main()

    {

    intdeyter,ores,lepta,sec;

    printf(":");

    scanf("%d",&deyter);

    ores=deyter/3600;

    lepta=(deyter-ores*3600)/ 60;

    sec=deyter%60;printf("%d :\n",deyter);

    deyter/3600. (deyter-ores*3600) 60 . - 60.

    printf("%d %d %d \n",ores,lepta,sec);

    }

    4.14

    .

    ""

    10, "".

    #include

    #includemain()

    {

    floatb1,b2,b3,mo;

    printf(":");

    scanf("%f %f %f",&b1,&b2,&b3);

    mo=(b1+b2+b3)/3;.

    if(mo>=10)

    printf("%f\n",mo); .

    else

    printf("\n");

    }

    http://c.bytes.gr 19

  • 8/13/2019 apantiseis_v3

    20/138

    C 3 .

    5

    5.1 -

    :

    , .

    (0-9), :"".

    .

    main()

    {

    charch;

    ch=getch();

    if ((ch>='a' && ch='' && ch='0' && ch='a' && ch='' && ch='a' && ch='' && ch='0' && ch='a' && ch='' && ch='' && ch='' && ch

  • 8/13/2019 apantiseis_v3

    21/138

    C 3

    5.3 "",

    , .

    1-"Hello"

    2-2

    3-"bye bye"

    4-M

    :

    (1, 2, 3, 4),-

    "".

    main()

    {

    charch;

    printf("1-Hello\n");

    printf("2-2\n");

    printf("3-bye bye\n");printf("4-M\n");

    printf(":");

    ch=getch();

    if (ch=='1') printf("Hello\n");

    if (ch=='2') printf("2\n");

    if (ch=='3') printf("bye bye\n");

    if (ch!='1' && ch!='2' && ch!='3' && ch!='4')

    printf("");

    }

    5.4 ;

    main()

    {

    charch,b='A';

    NAI-1OXI-2ch='A';

    if(ch==b)

    printf("NAI-1");

    else

    printf("OXI-1");

    if("A"=='A')

    printf("NAI-2");

    else

    printf("OXI-2");

    }

    ch==b''.

    ""=='' "" '' .

    .

    5.5 :

    http://c.bytes.gr 21

  • 8/13/2019 apantiseis_v3

    22/138

    C 3 .

    .

    charbyte.

    -

    .

    -.

    byte

    .

    5.6

    'a', '*' ' '.

    main()

    {

    printf("a %d\n",'a');

    printf("* %d\n",'*');printf("%d\n",' ');

    }

    5.7

    ASCII 80, 125, 192.

    main()

    {

    printf("80 %c\n",80);

    printf("125 %c\n",125);

    printf("

    192

    %c\n",192);}

    5.8 :

    main()

    {

    charch=68,let='L';a=145 ch=M let=M

    int a=2,b=4;

    a=ch+let;

    ch=++let;

    printf("a=%d ch=%c let=%c\n",++a,ch,let);

    }

    ch+let144 (68 + 76) ASCII 'L' 76.

    ++letlet177 ASCII ''.

    22

  • 8/13/2019 apantiseis_v3

    23/138

    C 3

    5.9 '' "".

    '' '' 65 ASCII ''.

    "" (

    107 ).

    5.10 -

    ASCII .

    #include

    #include

    main() printf(): ch. %c

    , (%d) .

    {

    charch;

    printf(":");

    ch=getch();

    printf("\n%c ASCII %d\n",ch,ch);

    }

    5.11

    ASCII .

    #include

    #include

    main() printf(): ar. %d , (%c).

    {

    intar;

    printf(":");

    scanf("%d",&ar);

    printf("%d %c\n",ar,ar);

    }

    http://c.bytes.gr 23

  • 8/13/2019 apantiseis_v3

    24/138

    C 3 .

    6

    6.1 ,-

    , -

    .

    main()

    {

    floata,b,mo;

    scanf("%f %f",&a,&b);

    mo=(a+b)/2;

    printf("MO=%7.2f\n",mo);

    }

    6.2 .-

    . pow() .

    3,141592653589793 #define.

    #include

    #definepi 3.141592653589793

    main()

    {

    doubler,e;

    printf(":");

    scanf("%lf",&r);

    e=pow(r,2)*pi;printf("%f %f\n",r,e);

    }

    6.3 ;

    main()

    {

    floatd;5

    inta,b;

    a=5;

    b=6;d=(a+b)/2;

    printf("%f\n",d);

    }

    (a+b)/2int-int.55.5 .

    (a+b)/2.0. 2.0float"" float,

    .

    24

  • 8/13/2019 apantiseis_v3

    25/138

    C 3

    6.4 :

    ++ --

    float. ANSI, -

    float.

    double-

    .

    printf()-

    .

    1+1.0 float.

    C .

    6.5 -

    .

    , , .

    .. 5.14 2

    1.14.

    main()

    {

    floatd,yp;

    inta,b;

    scanf("%f %d",&d,&a);

    b=d/a;

    yp=d-b*2;

    printf("%f\n",yp);

    }

    b=d/a, bint-d/a.

    6.6

    -

    .

    .

    10.50x 2.00==========

    21.00

    #include

    #include

    main()

    {

    floatar1,ar2;

    printf(":");

    scanf("%f %f",&ar1,&ar2);

    printf(" %9.2f\n",ar1);

    printf("x%9.2f\n",ar2);

    printf("==========\n");

    printf(" %9.2f\n",ar1*ar2);

    http://c.bytes.gr 25

  • 8/13/2019 apantiseis_v3

    26/138

    C 3 .

    }

    6.7

    B -

    ,

    .

    A B

    A B

    A B A

    A B A B B

    #include

    #include

    #include

    , -double.

    main()

    {

    doublea,b,x;

    printf(":"); scanf()

    %lf(double).

    scanf("%lf",&a);printf("B :");

    scanf("%lf",&b);

    x=(a/(a+b))*(b/(a-b))+pow(a,a+b)/pow(b,a-b);

    printf(": %f\n",x);

    }

    pow() . H pow() math.h(

    include) .

    26

  • 8/13/2019 apantiseis_v3

    27/138

    C 3

    7

    7.1

    :

    5000, 0.

    5000 10000, 5%.

    10000 30000, -15%.

    30000, 35%.

    main()

    {

    floateis,foros;

    printf("

    :");scanf("%f",&eis);

    if(eis=5000 && eis10000 && eis='A') && (ch

  • 8/13/2019 apantiseis_v3

    28/138

    C 3 .

    7.3

    main()

    {

    inta,b;

    a=getch();

    b='*';

    switch(a)

    {

    case1:

    printf("%c\n",a);

    printf("-------\n");

    caseb:

    printf("%d\n",b);

    case-. (b).

    break;

    case'A':

    printf("aaaaaaaaaaa");

    break;

    case'A'+1:

    printf("telos");

    case-. (''+1).

    break; case:case4

    printf("444444444");

    }

    }

    7.4 ;

    'B' ()

    '' ()

    'a'

    '*'

    main()

    {

    inta,b;

    b=44;

    a=getch();

    switch(a)

    {

    case66:

    printf("%c\n",a);

    printf("-------\n");

    case7:

    printf("%d\n",b);

    break;

    case'A':

    case'a':

    printf("aaaaaaaaaaa");

    28

  • 8/13/2019 apantiseis_v3

    29/138

    C 3

    break;

    default:

    printf("1234567890");

    }

    }

    ''(ASCII 66)case 66:

    case. -

    case-

    break,

    case 7:.

    B-------44

    'A' 'a'

    case 'A':case 'a':.

    aaaaaaaaaaa

    '*',case

    default:.

    1234567890

    7.5 '', '','D','*' ''

    ();

    main()

    {

    inta,b;

    charch;

    a=ch=getch();if'A','B','C' 'D'

    if(ch>=65 && ch

  • 8/13/2019 apantiseis_v3

    30/138

    C 3 .

    ''(ASCII 65)case 65:

    case.

    a66

    b(b=++a).b67 (++b).

    a=66 b=67 ch=A

    'B'(ASCII 66) case 66: default:-

    breakcase 66:.

    a65 (b=a--) b

    (66).b70 (b=a+5).

    a=65 b=70 ch=B

    'D'(ASCII 68)

    default:b73 (b=a+5).

    a=68 b=73 ch=D

    '*'(ASCII 42),

    else if. a b 41(a=b=ch-1).

    ***41****41******

    '', -.

    7.6

    :

    .

    "" "" .

    4. 100 -

    400.

    main()

    {

    intetos;

    printf(":");

    scanf("%d",&etos);

    4. -etos%4 4 (85 ).

    if(etos%4 == 0)

    {

    if(etos%100 == 0)

    100 .

    {

    if(etos%400 == 0)

    printf("\n");400,.

    else

    printf("\n");

    }

    else

    printf("\n");

    }

    else

    {

    30

  • 8/13/2019 apantiseis_v3

    31/138

    C 3

    printf("\n");

    }

    }

    7.7 , switch,-

    .

    ->""

    2->2

    ->""

    (,2, )

    "".

    main()

    {

    inta,b;

    charch;

    ch=getch();

    switch(ch)

    {

    case'':

    printf("\n");

    break;

    case'2':

    printf("2\n");

    break;

    case'':printf("\n");

    break;

    default:

    printf("\n");

    }

    }

    7.8 :

    case-

    .switch-case-

    if-else if.

    if-else if-

    switch-case.

    a==5a=5.

    ifC -

    .

    7.9 5

    10,20, & 50 1 2 . 70 .

    http://c.bytes.gr 31

  • 8/13/2019 apantiseis_v3

    32/138

    C 3 .

    (-

    ) .

    .

    #include

    #include

    main()

    {

    intkafedes,ker_10,ker_20,ker_50,ker_1,ker_2;

    intresta;

    printf(":");

    scanf("%d",&kafedes);

    resta=500-kafedes*70;

    . 5 500 .

    if(resta

  • 8/13/2019 apantiseis_v3

    33/138

    C 3

    #include

    #include

    main()

    {

    floatypsos,baros,dms;

    printf(":");

    scanf("%f %f",&ypsos,&baros);

    dms = baros/(ypsos*ypsos);

    if(dms=18.5 && dms=25 && dms0)

    {

    r1=(-b+sqrt(d))/(2*a);

    r2=(-b-sqrt(d))/(2*a);

    printf("R1=%f R2=%f\n",r1,r2);

    }

    elseif(d==0)

    {

    r1=-b/(2*a);

    printf("R=%f\n",r1);

    }

    else

    printf("\n");

    }

    http://c.bytes.gr 33

  • 8/13/2019 apantiseis_v3

    34/138

    C 3 .

    7.12 SMS

    :

    SMS SMS

    10 2

    50 1,5

    100 1,2 1

    SMS , ,

    .

    #include

    #include

    main()

    {

    intsms;

    floatposo;

    printf("sms :");

    scanf("%d",&sms);

    if(sms

  • 8/13/2019 apantiseis_v3

    35/138

    C 3

    printf("\n");

    else if(pos

  • 8/13/2019 apantiseis_v3

    36/138

    C 3 .

    8

    8.1

    1 1000.

    while...

    main()

    {

    inta,sum;

    a=sum=0;

    while(a

  • 8/13/2019 apantiseis_v3

    37/138

    C 3

    printf("%d \n",gr);

    printf("%d \n",lt);

    }

    8.3 (27 );

    main()

    {

    charch;

    inta,fl=0;

    ch=1;

    a=0;

    while(ch!=27)

    {

    ch=getch();

    if(ch=='*') fl=1;

    ('*'') fl1.

    fl1 ()

    a1.

    if(fl==1) ++a;

    }

    printf("%d \n",a);

    }

    .

    (). .:

    afgh6*ftg89, 7* -

    7 : *ftg89 ).

    8.4 ;-num1num2;

    main()

    { for100 .inta,num,num1,num2;

    num1=num2=0;

    for(a=1;a

  • 8/13/2019 apantiseis_v3

    38/138

    C 3 .

    , 100 -.

    num1 '' -num2'' (

    157 ).

    8.5 :

    .

    (*).

    .

    . q w e r * s d f g e r * -

    ()

    6 (, s d f g e r).

    main(){

    charch;

    inta,fl=0;

    a=0;

    while(fl

  • 8/13/2019 apantiseis_v3

    39/138

    C 3

    i10, -

    1 10.

    8.7 -

    32 255.

    30 ;

    main()

    {

    inta;

    for(a=32;a

  • 8/13/2019 apantiseis_v3

    40/138

    C 3 .

    8.9

    . , -

    5234 1010001110010.

    main()

    {

    intar,p,yp;

    printf(":");

    scanf("%d",&ar);

    do

    {

    p=ar/2;

    p 2, yp.

    yp=ar % 2;

    printf("%d",yp);

    -0.

    ar=p;

    }while(p!=0);

    putch('\n');

    }

    86-.

    , -. 5234

    1010001110010 0100111000101.

    12.

    8.10 ;

    main()

    {

    inti,j,k=4;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    41/138

    C 3

    8.11 ;

    main()

    {i=60 j=60 k=6

    inti,j=6,k=4;

    i=(k=k+2,j=k*10);

    printf("i=%d j=%d k=%d\n",i,j,k);

    }

    k=k+2, j=k*10k=k+2j=k*10(j 60).

    (60) i(

    153 ).

    8.12 ;;-

    ; ;

    main()

    {

    inta;

    do

    {

    a=rand();

    a .

    if(a>=100) continue;

    100 printf()--.

    printf("%d\n",a); -a0.}while(a!=0);

    }

    100. rand()0. 0.-

    100.

    8.13

    . ,

    5234, 14 (5+2+3+4).

    main()

    {

    intar,y,p,sum=0;

    printf(":");

    scanf("%d",&ar);y-10, p.do

    {

    y=ar % 10;

    p=ar/10;

    sum=sum+y;

    ar=p;

    }while(p!=0);

    - ar 0. --ar%10sum.

    printf("To %d\n",sum);

    }

    8.5 162 .

    http://c.bytes.gr 41

  • 8/13/2019 apantiseis_v3

    42/138

    C 3 .

    8.14 1

    100.

    ., .., 1 10, 11-

    20 ...

    main()

    {

    inti;

    for(i=1;imax1)

    {

    42

    max1, -max1max2max1.

  • 8/13/2019 apantiseis_v3

    43/138

    C 3

    max2=max1;

    max1=bathmos;

    }

    elseif(bathmos>max2)

    {

    max2=bathmos;

    max2, -max2.

    }

    }

    }

    mo=sum/100;

    printf("MO=%5.2f\n",mo);

    printf("MAX1=%5.2f\n",max1);

    printf("MAX2=%5.2f\n",max2);

    }

    8.17 f(x)=x

    4

    -5x

    2

    +3,-x0 1

    0.05.

    #include

    #include

    #include

    main()

    {

    doublefx,x;

    for(x=0.0;x

  • 8/13/2019 apantiseis_v3

    44/138

    C 3 .

    #include

    #include

    main()

    {

    intposo,sum=0,plithos,max,min;

    plithos=0; - maxmin.

    printf(":");

    scanf("%d",&poso);

    sum=sum+poso;

    plithos++;

    max=min=poso;

    while(summax) max=poso;

    if(poso

  • 8/13/2019 apantiseis_v3

    45/138

    C 3

    {

    r1=(-b+sqrt(d))/(2*a);

    r2=(-b-sqrt(d))/(2*a);

    0 ,.

    printf("a=%d b=%d r1=%f r2=%f\n",a,b,r1,r2);

    }

    else

    printf("a=%d b=%d \n",a,b);

    }

    }

    }

    8.21

    :

    1: .

    2: 0 ...

    3: .

    4: =0, .

    5: ,

    3.

    , -

    .

    #include

    #include

    main(){

    intm,n,mkd,r,temp;

    printf(":");

    scanf("%d %d",&m,&n);

    if(n>m)

    {

    temp=m;

    m=n;

    n=temp;

    }

    if(n==0)

    mkd=m;

    else

    {

    do

    {

    r=m%n;

    if(r!=0)

    {

    m=n;

    n=r;

    }

    http://c.bytes.gr 45

  • 8/13/2019 apantiseis_v3

    46/138

    C 3 .

    }while(r!=0);

    mkd=n;

    }

    printf("%d\n",mkd);

    }

    46

  • 8/13/2019 apantiseis_v3

    47/138

    C 3

    9

    9.1 :

    main()

    {

    doublex,y;

    printf("*************\n");

    scanf() xy. double %lf%f :scanf("%lf %lf",&x,&y);

    scanf("%f %f",x,y);

    printf("mo=%f\n",mo(x,y));m() int, int double xy.

    }

    floatmo(inta, intb);

    {

    if(a==0 && b==0)-. -

    int, main()(181 ).

    {

    return0;

    }

    else

    {

    floatmesos;

    mesos=(a+b)/2.0;

    }

    returnmesos;

    mesos. mesos else.

    }

    9.2 :

    .

    1,.

    2,.

    3,.

    1, 2, 3,""

    1.

    .

    floatcalc(inta, floatb, floatc) intswitch ( 128 ).

    {

    switch(a)

    {

    case1:

    returnb+c;

    break;case2:

    http://c.bytes.gr 47

  • 8/13/2019 apantiseis_v3

    48/138

    C 3 .

    returnb*c;

    break;

    case3:

    return(b+c)/2;

    break;

    default:

    printf("\n");

    exit(1);

    }

    }

    9.3 total()-

    1

    . , total(1250)

    1 1250.

    inttotal(intar){

    inti,sum=0;

    for(i=1;i='A' && ch

  • 8/13/2019 apantiseis_v3

    49/138

    C 3

    9.5 "-

    C".

    voidprint_it1()

    { print_it1() "C" 10 .int i;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    50/138

    C 3 .

    p=calc(1000)*2;

    printf("=%f\n",p);

    }

    doublecalc(intar)

    {

    inti;

    doublep1;

    p1=1.0;

    for(i=2;i

  • 8/13/2019 apantiseis_v3

    51/138

    C 3

    return1;

    }

    else

    return0;;

    }

    9.9 ()/2,

    .

    :

    18.5

    18.5 25

    25 30

    30

    , -

    (..).

    0 .

    .-

    .

    #include

    #include

    floatdms(floaty, floatb);

    voiddisplay(floatd);

    main()

    {floatypsos,baros;

    do

    {

    printf(":");

    scanf("%f %f",&ypsos,&baros);

    if(ypsos==0 || baros==0) break;

    display(dms(ypsos,baros));

    }while(1); display() - dms().

    }

    floatdms(floaty, floatb)

    {

    floatd;

    d = b/(y*y);

    returnd;

    }

    voiddisplay(floatd)

    {

    if(d=18.5 && d

  • 8/13/2019 apantiseis_v3

    52/138

    C 3 .

    printf("\n");

    elseif(d>=25 && d

  • 8/13/2019 apantiseis_v3

    53/138

    C 3

    main()

    {

    inti,kat_fpa,plithos;

    floattimi,synoliko_kostos=0,synoliko_fpa=0,poso,poso_fpa;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    54/138

    C 3 .

    10

    10.1 ;

    .

    voidset();

    floata;

    floatmo();

    intx,y;

    a,x,ymain()

    {

    x,yintx,y;

    x=y=4;

    set();

    a=mo(x,y);pp();

    }

    voidset()

    {

    intaa;

    x=10;

    y=20;

    }

    pp()

    {

    intx,y;

    printf("a=%f\n",a);

    }

    floatmo(intk,intl)

    {

    floatmesos;

    mesos=(k+l)/2.0;

    returnmesos;

    }

    k,l,mesos

    x,y

    aa

    set()xy10 20.

    a4 xymo()xy4 4 .

    a=4

    54

  • 8/13/2019 apantiseis_v3

    55/138

    C 3

    10.2 ;()

    .

    voiddisp();

    intstep; stepmain()

    {

    step=2;

    disp();

    }

    voiddisp()

    {

    inta,b;

    printf("\n");

    a=get();

    b=get();

    if(a==0 && b==0)

    exit(0);

    else

    {

    inti;

    for(i=a;i

  • 8/13/2019 apantiseis_v3

    56/138

    C 3 .

    10.3 :

    intstep;

    main()

    {

    step=2;

    disp(4);

    }

    voiddisp(st)

    -

    st. disp()int, main() (181 ).

    {

    inta,b,c;

    printf("\n");

    a=get();

    c=x;

    b=get();

    if(a==0 && b==0)

    x disp(). H x get().

    exit(0);

    else

    {

    inti;

    for(i=a;i

  • 8/13/2019 apantiseis_v3

    57/138

    C 3

    10.4 ;

    .

    voidout();d,eintd,e;

    main()

    {

    m,n,jintm=2,n=3,j;

    j=func1(m,n);

    func2(j);

    out(m,n,4);

    }

    func1(intx, inty)

    {

    d=12;

    returnx+y;

    }

    func2(intd)

    {

    d=20;

    e=d;

    }

    voidout(inta, intb, intc)

    {printf("a=%d b=%d\n",a,b);

    printf("c=%d d=%d e=%d\n",c,d,e);

    }

    a,b,c

    func2() e20.

    out(m,n,4)2,34 a,bc.out()

    d e 12 20 .

    a=2 b=3c=4 d=12 e=20

    dfunc2()-d.

    http://c.bytes.gr 57

  • 8/13/2019 apantiseis_v3

    58/138

    C 3 .

    10.5 ;

    intx=10;

    voidout1();

    voidout2();

    voidout3();

    main() out1() (5,6,7 ....). out1(), 4.

    {

    inti;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    59/138

    C 3

    10.7 :

    -

    .

    -

    .

    .

    for.

    , , -

    .

    10.8 .

    (8.7).

    . .

    #include

    #include

    main() next_first() .

    {

    inti;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    60/138

    C 3 .

    10.9

    . .

    #include

    #include num-.

    intnum=0;main()

    {

    inti;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    61/138

    C 3

    returnx+y;

    }

    intgin()

    {

    returnx*y;

    }

    voidout()

    {

    printf("=%d\n",aa);

    printf("=%d\n",gg);

    }

    10.11 -

    ; .

    !-

    .

    -

    .-

    -

    .

    10.12

    --

    () (

    ). , -

    .

    -

    1 -

    0 -

    . ,

    -

    .

    aaaaaaaaa aa aa aa aa aaaaaaaaa

    ****************

    ****

    #include

    #include

    voidplaisio(intyps, intpl, charch, intfill);

    main()

    {

    plaisio(7,8,'a',0);

    printf("\n");plaisio(5,4,'*',1);

    http://c.bytes.gr 61

  • 8/13/2019 apantiseis_v3

    62/138

    C 3 .

    }

    voidplaisio(intyps, intpl, charch, intfill)

    {

    inti, j;

    for(i=1; i

  • 8/13/2019 apantiseis_v3

    63/138

    C 3

    10.14 :

    voiddo_it(charch, inty)

    {

    inti;

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    64/138

    C 3 .

    11

    11.1 a,b, c-

    :

    main()

    {

    inta,b,c,*m,*p;

    a=100;

    b=50;

    m=&a;

    p=&b;

    c=*p + *m;

    (*p)++;

    p=m;

    (*p)--;}

    11.2 ;

    main(){

    char*p;

    inta=5,b=10;

    p="a,b=%d,%d\n";

    printf(p,a,b);

    }

    ,

    printf(p,a,b);

    printf(p+4,a,b);

    a 99

    b 51

    c 150

    H c150 (100+50) *pa*mb.

    mapb.

    H 1 '' p ( b)., b101.

    p

    m a. '' a. H(*p)-- a1.

    64

  • 8/13/2019 apantiseis_v3

    65/138

    C 3

    11.3 :

    main()

    {

    char*p;

    p="";

    .......

    }

    ,

    "-

    ".

    main()

    {

    char*p,ch;

    int ar=0;

    p="";

    -

    p'' '\0'.ch=getch();

    while(*p!='\0')

    {

    if(*p==ch) ar++;

    ar'' -ch.

    p++;

    } p .

    printf("To %c %d \n",ch,ar);

    }

    p-"".''-.

    ' -'\0'.

    11.4 ;

    main()

    {

    char*p; p="";while(*p!='\0')

    {

    if(*p==' ')

    putch('\n');p'' - , 'p.

    else

    putch(*p);

    p++;

    } p .

    }

    http://c.bytes.gr 65

  • 8/13/2019 apantiseis_v3

    66/138

    C 3 .

    11.5 :

    main()

    {

    inta,b,c,*p1,*p2,*p3;

    p1=&a;

    p2=&b;

    p3=&c;

    .......

    }

    ,scanf(),

    ab, -

    ab,c, -

    c. ,

    a,b, c.

    main(){

    inta,b,c,*p1,*p2,*p3;

    p1=&a;

    p2=&b;

    p3=&c;

    scanf("%d %d",p1,p2);

    p1p2-ab.

    *p3c, *p1 a , *p2 b. c=a+b;

    *p3=*p1 + *p2;

    printf("c %d\n",*p3);

    }

    11.6 , -

    :

    inta,b,c,*p,*m;

    p=&a p a

    *p=23 p (a) 23.

    m=&b m b

    c=*p + *mp (a) m (b) -c.

    m=p m p. m p '' a.

    p++ p 4! (226 ).

    (*p)++ '' p (-a) 1. a++;

    m=120 . -.

    66

  • 8/13/2019 apantiseis_v3

    67/138

    C 3

    11.7 ;

    main()

    {

    char*p,*m;

    p="";p '' '\0'.

    m=p;

    while(*p!='\0') p++;

    --p;

    while(p>=m) putch(*(p--)); p .

    }

    :

    .

    .

    m'' -, p.

    11.8

    :

    inta,b,c=0,*ptr,*m;

    a=b=10;

    1 ptr=&a;

    ptra(1000).

    *ptr=34;

    2 m=&b;

    ptr(a) -34.

    3 c=*ptr + *m;mb(3000).

    ptr=m;

    4 *ptr=100;c=a+b;c44

    5 m++;H ptrb. b=100;

    mint, 4.

    http://c.bytes.gr 67

  • 8/13/2019 apantiseis_v3

    68/138

    C 3 .

    11.9 :

    .

    * -

    .

    ++ , -1.

    .

    charint-

    .

    C - -

    .

    11.10 ;

    #include#include

    main()-.

    {

    char*ptr;

    ptr="C ";

    printf("%d\n",space(ptr));

    }

    intspace(char*p) space() p. -4 .

    {

    intc=0;

    while(*p != '\0')

    {

    if(*p == ' ') c++;

    p++;

    }

    returnc;

    }

    11.11

    (0~9)

    .

    intdigits(char*p)

    {

    intc=0; (0 9).

    while(*p != '\0')

    {

    if(*p >='0' && *p

  • 8/13/2019 apantiseis_v3

    69/138

    C 3

    11.12 ;

    intis_same(char*p1, char*p2)

    {

    intyes=1;

    do

    {

    if(*p1!=*p2) yes=0;

    }while(*(p1++) != '\0' && *(p2++)!='\0');

    returnyes;

    }

    .

    1

    0.

    , is_same()-

    :

    main()

    {

    printf("%d\n",is_same("",""));

    printf("%d\n",is_same("",""));

    }

    1 0 .

    http://c.bytes.gr 69

  • 8/13/2019 apantiseis_v3

    70/138

    C 3 .

    12

    12.1 lexi1lexi2

    gets() :

    main()

    {

    charlexi1[80], lexi2[80];

    gets(lexi1);

    gets(lexi2);

    }

    .

    lexi1-lexi2.

    lexi2-lexi1. 0 , , -

    lexi1

    lexi2.

    //

    voidcommon(charpin1[], charpin2[])

    {

    charkoina[80]="";O koina[] .

    int i,j,k,found;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    71/138

    C 3

    koina[],

    .

    .

    //

    voiddel(charpin1[],charpin2[])

    {

    int i,j,k;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    72/138

    C 3 .

    }

    return0;

    }

    pin1[] pin2[]

    pin1[]... pin1[5]pin1[5] pin2[0], pin1[6] pin2[1], pin1[7]

    pin2[2].., pin2[].

    -pin2[]pin1[].

    12.2 convert()-

    .-

    :

    intconvert(char*str, intsel)

    H strchar-. sel

    :

    sel1, .

    sel0, .

    .

    intconvert(char*str, intsel)

    {

    intcnt=0;

    H cnt'' .

    while(*str!='\0')

    {

    if(*str>='a' && *str='A' && *str

  • 8/13/2019 apantiseis_v3

    73/138

    C 3

    while((str1[i] != '\0') && (i

  • 8/13/2019 apantiseis_v3

    74/138

    C 3 .

    pr intf()func1()'' -''.

    func2(a) -a. : ""

    func2()a[5].: ""

    func3()a-5. a[4]

    a[0]: "".

    func3()a+3-2.

    a+3a[4]a[3]:

    "".

    charfunc1(charp)

    {

    returnp+1;

    }

    voidfunc2(char*p)

    {

    puts(p);

    }

    voidfunc3(char*p, intnum){

    inti;

    for(i=num-1; i>=0; i--) putch(p[i]);

    putch('\n');

    }

    12.6 ;

    intfunc5(char*p,charch);

    char*func6(char*p, charch);

    main(){

    chara[10], *ptr;

    strcopy(a,"BENETIA");

    printf("RES1=%d\n",func5(a,''));

    printf("RES2=%d\n",func5(a+5,''));

    ptr=func6(a,'');

    if(ptr!=NULL) printf("%c a\n",*ptr);

    }

    intfunc5(char*p,charch)

    {

    a

    a[0]

    a[1] a[2]

    a[3]

    a[4]

    a[5]

    a[6]

    a[7] \0

    a[8]

    a[9]

    func1() . .func1('A')''.

    func2() p'\0'.

    func3() p, num. .func3("",5)"".

    func5()

    . ch-.

    74

  • 8/13/2019 apantiseis_v3

    75/138

    C 3

    inti=0,cnt=0;

    while(p[i] != '\0')

    {

    if(p[i] == ch) cnt++;

    i++;

    }

    returncnt;

    }

    char*func6(char*p, charch)

    {

    inti=0;

    while(p[i] != '\0')

    {

    if(p[i] == ch) return &p[i];

    i++;}

    returnNULL;

    }

    func5(a,'') 2-''

    a[].

    func5(a+5,'') 0''

    a[5]a[].

    func6(a,'I') 'I' (a[5])). H

    pt rNULL.*ptr

    pt r.

    12.7 a,

    :

    func4(a,a+6);

    ................

    voidfunc4(char*p1, char*p2)

    {charch;

    while(p1

  • 8/13/2019 apantiseis_v3

    76/138

    C 3 .

    ' . p11

    '' a, p2 1

    '' .

    ... p1

  • 8/13/2019 apantiseis_v3

    77/138

    C 3

    12.10 100 ,

    , .

    main()

    {

    intpin[100],i,sum=0;

    for(i=0;ii.

    -, a[i][j]i==j.

    http://c.bytes.gr 77

  • 8/13/2019 apantiseis_v3

    78/138

    C 3 .

    () .-() .-

    .

    12.13 a:main()

    {

    inta[6][6]; 2 2 2 2 2 0

    2 2 2 2 0 1

    2 2 2 0 1 1

    2 2 0 1 1 1

    2 0 1 1 1 1

    0 1 1 1 1 1

    inti,j;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    79/138

    C 3

    12.15 int a[100][20]-

    (100

    ).

    main()

    {

    inta[100][20],max;

    inti,j;

    ...........

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    80/138

    C 3 .

    {

    charonomata[10][20],ch;

    inti;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    81/138

    C 3

    12.19

    9,5, -

    18,5.

    503

    . -

    -, .

    #include

    #include

    main()

    {

    intb[50][3],i,j,pl_ap=0,pl_ar=0;

    floatsum,mo;

    50 3.

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    82/138

    C 3 .

    -

    .

    #include

    #include define PLHTHOS

    .#definePLHTHOS 100

    voiddisplay_synolo_paravaseon(charak[][10], intpr[][12],intsp[]);

    voiddisplay_10_top(charak[][10], intsp[]);

    voiddisplay_minimum(charak[][10], intsp[]);

    main()

    {

    charar_kykl[PLHTHOS][10];

    intpar[PLHTHOS][12],syn_par[PLHTHOS],i,j;

    ar_kykl ( .. 3456). parsyn_par--.for(i=0;i

  • 8/13/2019 apantiseis_v3

    83/138

    C 3

    sp[i]=sum;

    printf("%10s %5d\n",ak[i],sum);

    - sp .

    }

    }

    voiddisplay_10_top(charak[][10], intsp[])

    {

    inti;

    printf("\nTOP-10\n\n");

    printf("- \n");

    printf("---------- -----\n");

    -- 10,. -.

    for(i=0;i10) printf("%10s %5d\n",ak[i],sp[i]);

    }

    }

    voiddisplay_minimum(charak[][10], intsp[])

    {

    inti,min;

    printf("\nMinimum \n\n");

    printf("-. \n");

    printf("---------- -----\n");

    min.

    min=sp[0];

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    84/138

    C 3 .

    scanf("%d",&xreosi[i][j]); xreosi.

    }

    }

    max=xreosi[0][0];

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    85/138

    C 3

    printf("%d:%s\n",i+1,theseis[i]);

    }

    }

    intis_on_board(charth[][20],charonom[],intpl)

    {

    inti,found=0;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    86/138

    C 3 .

    }

    }

    voidcommon_once(char*s1,char*s2)

    {

    inti,j,k,ls1,ls2,found;

    ls1=strlen(s1);

    ls2=strlen(s2);

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    87/138

    C 3

    main()

    {

    charfraseis[20][40],*pt,lex[10];

    inti;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    88/138

    C 3 .

    13

    13.1

    (, , ,

    , )..

    structcars cars . -.

    {

    charar_kykl[8];

    charxroma[15];

    charmarka[15];

    intkybika;

    intipodynami;

    };

    mycarcars.main()

    {

    structcarsmycar;

    printf(":");

    gets(mycar.ar_kykl); mycar.printf(":");

    gets(mycar.xroma);

    printf(":");

    gets(mycar.marka);

    printf(":");scanf("%d",&mycar.kybika);

    printf(":");

    scanf("%d",&mycar.ipodynami);

    }

    13.2

    100 (, , -

    , , ).

    . -

    .

    structcars

    {

    charar_kykl[8];

    charxroma[15];

    charmarka[15];

    intkybika;

    intipodynami;

    };

    88

  • 8/13/2019 apantiseis_v3

    89/138

    C 3

    main()

    {

    structcarsmycars[100]; mycars100 .

    int i;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    90/138

    C 3 .

    {

    if(pin[i].ilikia>max)i - (max), max.

    max=pin[i].ilikia;

    }

    returnmax;

    }

    13.5 :

    enumdays {mon,tue,wed,thu,fri,sat,sun} birth_day,today;

    typedef intmeres;

    main()

    {

    meresa,b;

    daysmy_date;

    a=1;

    my_date=mon;wed=5;

    web.

    meres=23;

    today=3;

    meres .

    birth_day=fri;

    }

    13.6 :

    .

    enum

    enum.

    -

    >.

    , -

    .

    ,

    = .

    , filos=pelatis-

    pelatisfilos.

    13.7

    : , ,

    '' , '' -

    .

    , 50 . -

    : ,

    (x )

    .

    #include

    90

  • 8/13/2019 apantiseis_v3

    91/138

    C 3

    #includeAR.#defineAR 50

    metoxi -.structmetoxi

    {

    charonoma[10];

    intposotita;

    floattimi;

    chareidos;

    };

    main()

    {

    structmetoxikiniseis[AR];

    kiniseis, metoxi, AR (50) .

    syn_axia-

    .syn_asyn_b.

    floatsyn_axia;inti,syn_a,syn_p;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    92/138

    C 3 .

    13.8 10 -

    .

    : ,

    . :

    -.

    .

    . 80%

    .

    #include

    #include

    AR.

    #defineAR 10

    ptisi-.

    structptisi

    {

    intar_ptisis;

    inttheseis;

    intepibates;

    };

    main()

    {

    structptisiptiseis[AR];

    ptiseis, ptisi, AR(10) .

    inti,syn_epibaton,plirotita;

    syn_epibaton-

    . plirotita.

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    93/138

    C 3

    printf("= %d\n",syn_epibaton);

    printf("= %d\n",plirotita);

    }

    13.9 15

    -.

    (.. 1,3, ...1), -

    .

    tmimatatmima. -

    , -

    mathites

    math, -

    .

    25 . --

    ar_mat.

    ,

    .

    structmath{

    chareponymo[30];charonoma[20];floatbathmos;intilikia;

    };

    structtmima{

    chartitlos[3];intar_mat;structmath mathites[25];

    } tmimata[15];

    #includeAR.

    #include

    #defineAR 15

    structmath{

    chareponymo[30];

    charonoma[20];

    floatbathmos;

    intilikia;

    };

    structtmima

    {

    chartitlos[3];

    intar_mat;

    structmathmathites[25]; tmimata 15 .} tmimata[15];

    main()

    {

    inti,j;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    94/138

    C 3 .

    gets(tmimata[i].titlos);

    printf(":");

    scanf("%d",&tmimata[i].ar_mat);

    tmimata().

    getchar();

    printf("\n%d \n",tmimata[i].ar_mat);

    printf("===================================\n");

    for(j=0;j

  • 8/13/2019 apantiseis_v3

    95/138

    C 3

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    96/138

    C 3 .

    14

    14.1

    arithmoi1

    100.arithmoi- (.332 ).

    main()

    {

    FILE*fp;

    int i;

    if((fp=fopen("arithmoi","w")) == NULL)

    {

    puts("");

    exit(2);

    }

    for(i=1;i

  • 8/13/2019 apantiseis_v3

    97/138

    C 3

    14.3

    outputint a[100].-

    .

    intappend(intpin[])

    {

    FILE*fp;

    int i;

    if((fp=fopen("output","a")) == NULL)

    return0;

    for(i=0;imax_ar) max_ar=ar;

    if(ar

  • 8/13/2019 apantiseis_v3

    98/138

    C 3 .

    14.5

    data

    .

    .

    data

    10 19 2011 19 148 12 1119 18 15.............

    main()

    {

    FILE*fp;

    float ar1,ar2,ar3,mo;

    .

    if((fp=fopen("data","r")) == NULL)

    {

    puts("");

    exit(2);, - .

    }

    while(!feof(fp))

    {

    fscanf(fp,"%f %f %f",&ar1,&ar2,&ar3);

    mo=(ar1+ar2+ar3)/3;

    printf("mo=%f\n",mo); ar1, ar2ar3.

    }

    fclose(fp);

    }

    14.6 sxoleio-

    14.3 .

    .

    .

    structstoixeia

    {

    chareponymo[30];

    chartaxi[5];mathitis . kaliteros

    . max_mo . 0.

    floatmesos_oros;

    intilikia;

    };main()

    {

    FILE*fp;

    struct stoixeia mathitis,kaliteros;

    float max_mo=0.0;

    fp=fopen("sxoleio","rb");

    while(!feof(fp))

    {

    fread(&mathitis,sizeof(struct stoixeia),1,fp);

    mathitis (14.5 . 352 ).

    if(mathitis.mesos_oros>max_mo)

    {

    98

  • 8/13/2019 apantiseis_v3

    99/138

    C 3

    max_mo=mathitis.mesos_oros;

    kaliteros=mathitis;

    }

    }

    fclose(fp);

    printf("\n");

    (max_mo) -kaliteros.

    printf(":%s\n",kaliteros.eponymo);

    printf(":%s\n",kaliteros.taxi);

    printf(":%f\n",kaliteros.mesos_oros);

    printf(":%d\n",kaliteros.ilikia);

    }

    -mathitis.

    feof(fp).

    , kaliteros.

    14.7 sxoleio-

    14.3.

    15.

    structstoixeia

    {

    chareponymo[30];

    chartaxi[5];

    floatmesos_oros;intilikia;

    };

    main()

    {

    FILE*fp;

    struct stoixeia mathitis;

    fp=fopen("sxoleio","rb");

    fseek(fp,14*sizeof(struct stoixeia),0);

    H fseek() 15(343 ).

    fread(&mathitis,sizeof(struct stoixeia),1,fp);

    fclose(fp);

    printf("15");

    printf(":%s\n",mathitis.eponymo);

    printf(":%s\n", mathitis.taxi);

    printf(":%f\n", mathitis.mesos_oros);

    15 mathitis.

    printf(":%d\n", mathitis.ilikia);

    }

    14.8 sxoleio-

    14.3.15-

    .

    .structstoixeia

    http://c.bytes.gr 99

  • 8/13/2019 apantiseis_v3

    100/138

    C 3 .

    {

    chareponymo[30];

    chartaxi[5];

    floatmesos_oros;

    intilikia;

    };

    main()

    {

    FILE*fp;

    struct stoixeia mathitis;

    fp=fopen("sxoleio","rb+");

    fseek(fp,14*sizeof(struct stoixeia),0);

    printf(":");

    scanf("%s",mathitis.eponymo);

    printf(":");

    scanf("%s",mathitis.taxi);

    printf(":");

    scanf("%f",&mathitis.mesos_oros);

    printf(":");

    scanf("%d",&mathitis.ilikia);

    fwrite(&mathitis,sizeof(struct stoixeia),1,fp);

    fclose(fp);

    }

    14.9 sxoleio-

    14.3.-

    -

    .

    structstoixeia

    {

    chareponymo[30];

    chartaxi[5];

    floatmesos_oros;

    intilikia;

    };

    main()

    {

    FILE*fp;

    struct stoixeia mathitis;

    char ch;

    fp=fopen("sxoleio","rb");

    printf(":");

    ch=getch();

    while(!feof(fp))

    {

    15.

    /

    mathitis.

    -mathitis 15 -.

    mathitis .

    mathitis (14.5 . 352 ).

    100

  • 8/13/2019 apantiseis_v3

    101/138

    C 3

    fread(&mathitis,sizeof(struct stoixeia),1,fp);

    if (mathitis.eponymo[0]==ch)

    {

    printf("%s %d\n",mathitis.eponymo,mathitis.ilikia);

    }

    } o (ch),.

    fclose(fp);

    }

    -mathitis.

    feof(fp).

    14.10 :

    . -

    "" "".

    , -

    , .

    main()

    {

    FILE*fp;

    charch,file_in[30];

    printf(":");

    gets(file_in);

    fp=fopen(file_in,"r"); .

    if(fp==NULL){

    printf("");

    exit(2);

    }

    while(ch!=EOF)

    {

    ch=fgetc(fp);

    ch.

    putch(ch-1); .

    }

    fclose(fp);

    }

    14.11 :

    C FILE.

    bit.

    , .

    -

    .

    fseek()-.

    http://c.bytes.gr 101

  • 8/13/2019 apantiseis_v3

    102/138

    C 3 .

    FILE.

    -

    (buffer).

    C

    .

    14.12 bathmoi, -

    100

    .

    -

    -

    .

    bathmoi.txt

    5.5 7 910 4 6.58 7 39.5 8 8.............

    #include

    #include

    main()

    {

    inti;

    charepon[30],onom[30],maxonom[30],maxepon[30];

    floatb1,b2,b3,mo,maxmo;

    FILE*fp;//

    fp=fopen("bathmoi.txt","r");

    epon, onom b1,b2&b3.

    fscanf(fp,"%s %s %f %f %f",epon,onom,&b1,&b2,&b3);

    mo=(b1+b2+b3)/3;

    maxmo=mo;strcpy(maxepon,epon);

    strcpy(maxonom,onom);

    -

    , maxmomaxeponmaxonom.

    for(i=2;imaxmo)

    {

    maxmo=mo;

    strcpy(maxepon,epon);

    strcpy(maxonom,onom);

    . maxmo

    maxeponmaxonom.

    }

    }

    fclose(fp);

    printf("%s %s\n",maxepon,maxonom);

    }

    102

  • 8/13/2019 apantiseis_v3

    103/138

    C 3

    14.13

    .

    :

    .

    -. : .ep .ap .

    96.54.............

    .ep -(>=5), .ap

    .

    .

    #include

    #include

    main(){

    intar=0;

    charepon[30],onom[30],arxeio[30],arxeio_ep[30],arxeio_ap[30];

    floatb;

    printf(":"); .

    gets(arxeio);

    FILE *fp,*fp_ep,*fp_ap;

    fp=fopen(arxeio,"r"); if(fp==NULL)

    {puts("");

    exit(1); .

    }

    strcpy(arxeio_ep,arxeio);

    strcpy(arxeio_ap,arxeio);

    fp_ep=fopen(strcat(arxeio_ep,".ep"),"w");

    fp_ap=fopen(strcat(arxeio_ap,".ap"),"w");

    while(!feof(fp))

    {

    fscanf(fp,"%s %s %f",epon,onom,&b);

    .

    if(b>=5)

    fprintf(fp_ep,"%s %s %f\n",epon,onom,b);

    else

    fprintf(fp_ap,"%s %s %f\n",epon,onom,b);

    ar++;

    } .

    fclose(fp);

    fclose(fp_ep);

    fclose(fp_ap);

    printf("%d\n",ar);

    }

    http://c.bytes.gr 103

  • 8/13/2019 apantiseis_v3

    104/138

    C 3 .

    14.14 -

    100 .-

    MHTROO, .-

    .

    #include

    #include To foit.#definefoit 100

    main()

    {

    intar=0,mitroa[foit],i;

    charonomata[foit][30]; - ono-matamitroa.FILE*fp;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    105/138

    C 3

    #include MHTROO 34 byte. 4 (sizeof(int)) 30.

    #include

    #definefoit 100

    main()

    {

    inti,mitroo,ar,brika;

    charonoma[30];

    FILE*fp;

    fp=fopen("MHTROO","rb");

    MHTROA(rb).

    if(fp==NULL)

    {

    puts("");

    exit(1);

    }

    fseek(fp,0,SEEK_SET);

    fread(&mitroo,sizeof(int),1,fp);

    .

    fread(onoma,30,1,fp);

    printf("%s %d\n",onoma,mitroo);

    -.

    fseek(fp,-34,SEEK_END);

    fread(&mitroo,sizeof(int),1,fp);

    34bytes . .

    fread(onoma,30,1,fp);

    printf("%s %d\n",onoma,mitroo); -.

    printf(":");

    scanf("%d",&ar);

    brika=0;

    fseek(fp,0,SEEK_SET); - .for(i=0;i

  • 8/13/2019 apantiseis_v3

    106/138

    C 3 .

    15

    15.1

    1/1 + 1/2 + 1/3 + 1/4 + ........ + 1/n. -

    n.

    floatpar(intn)

    {

    floatp;

    if(n==1) return1.0;

    .

    p=1.0/n+par(n-1);

    returnp;

    }

    15.2 .

    intpar(intn)

    {

    intp;

    p=n+par(n-1);

    -(363 ).

    returnp;

    }

    15.3 ;

    intpar(intn)

    {

    intp;

    if(n==1) return0;

    p=n+par(n/2);

    returnp;

    }

    par(20);

    n + n/2 + n/4 .... 1.

    par(20)37 (20 + 10 + 5 + 2 + 0).

    15.4 .

    .

    -

    . 1000 .

    2 2 22

    2 2 2 2 2 2

    =

    106

  • 8/13/2019 apantiseis_v3

    107/138

    C 3

    doublepar(intn);

    doubleall(intk);

    main()

    {

    printf("%lf\n",all(1000));

    }

    doublepar(intn)

    {,

    doublep;

    if(n==0) return0;

    p=sqrt(2+par(n-1)); .returnp;

    }

    doubleall(intk)

    {doublep;

    if(k==0) return2;

    p=2/par(k)*all(k-1); .

    returnp;

    }

    par() -.

    all()-.

    15.5 :

    -

    .

    .

    /.

    -.

    .

    15.6 -

    :

    1: .

    2: 0 ...

    3: .

    4: =0, .

    http://c.bytes.gr 107

  • 8/13/2019 apantiseis_v3

    108/138

    C 3 .

    108

    5: ,

    3.

    .-

    mkd(), -

    .

    -

    ..mkd().

    #include

    #include

    main()

    {

    inta,b;

    printf(":");

    scanf("%d %d",&a,&b);

    printf("%d %d %d\n",a,b,mkd(a,b));}

    intmkd(intm, intn)

    {

    inttemp;

    if(n>m)

    {

    temp=m;

    m=n;

    n=temp;

    }if(n==0)

    returnm;

    else

    returnmkd(n, m % n);

    }

    15.7 xy= x*xy-1,

    xy.xy-

    xy.

    .

    #include

    #include

    doublemypow(doublex, doubley);

    main()

    {

    doublea,b;

    printf(":");

    scanf("%lf %lf",&a,&b);

    printf("%f %f = %f\n",a,b,mypow(a,b));

    }

    .

    m n m .

  • 8/13/2019 apantiseis_v3

    109/138

    C 3

    doublemypow(doublex, doubley)

    {

    if(y==0)

    return1;

    else

    returnx*mypow(x,y-1);

    .

    }

    15.8 -

    . -

    .

    #include

    #include

    main(intargc,char*argv[])

    {

    FILE*fin;

    intcnt=0; .

    charch;

    if(argc!=2)

    {

    printf("\n");

    exit(2);

    }

    fin=fopen(argv[1],"r");

    -, .

    if(fin==NULL)

    {

    printf("\n");

    exit(2);

    }

    while(!feof(fin)) --cnt.

    {

    ch=fgetc(fin);

    cnt++;

    }

    fclose(fin);printf("%s %d \n",argv[1],cnt);

    }

    15.9 -

    . -

    .

    #include

    #include

    main(intargc,char*argv[])

    http://c.bytes.gr 109

  • 8/13/2019 apantiseis_v3

    110/138

  • 8/13/2019 apantiseis_v3

    111/138

    C 3

    main()

    {

    double(*ptr[3]) (doublex, doubley);

    double, double.

    inti;

    ptr[0]=&mo;

    ptr[1]=&max;

    ptr[2]=&min;

    ptr

    mo(), max()min().

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    112/138

    C 3 .

    1 100.

    . -

    , gcc.

    func.c

    sum()kyrio.cmain()

    .myfunc.h-

    sum():

    .-:

    c:\myfiles>gcc Wall c kyrio.cc:\myfiles>gcc Wall c func.c

    final.exe:

    c:\myfiles>gcc kyrio.o func.o o final

    :

    c:\myfiles>final5050

    15.13 :

    -

    .

    & -

    .

    .

    ,,

    .

    .

    int sum(int n){

    int p;if (n==0) return 0;p=n+sum(n-1);return p;

    }

    func.c

    #include #include #include "myfunc.h"main(){

    printf("%d\n",sum(100));}

    kyrio.c myfunc.h

    int sum(int n);

    112

  • 8/13/2019 apantiseis_v3

    113/138

    C 3

    16

    16.1 , -

    , .

    , .

    main()

    {

    inti,k,n;

    charch,lex[30];

    printf(":");

    gets(lex);

    n=strlen(lex);

    n lex[].

    for(i=1;i=i;k--)

    {

    if(lex[k]

  • 8/13/2019 apantiseis_v3

    114/138

    C 3 .

    }

    }

    16.3 lex

    "", lex

    ;

    inti=0,p1,p2;

    charch1,ch2,temp;

    ch1=ch2=lex[0];

    p1=p2=0;

    while(lex[i]!='\0')

    {

    if(ch1>lex[i])

    {

    ch1=lex[i];

    () .p1.

    p1=i;}

    if(ch2

  • 8/13/2019 apantiseis_v3

    115/138

    C 3

    intinsert(lex,ch)

    charlex[],ch;

    {

    inti,n,pos;

    n=strlen(lex);n .

    pos=n;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    116/138

    C 3 .

    .

    .

    #include

    #include

    main()

    {

    inti,k,n=0;

    charonomata[50][30],temp[30]; "" 50.

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    117/138

    C 3

    {

    inti,j,k;

    charonomata[10][20],temp[20];

    floatvoles[10][6],max[10],tt;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    118/138

    C 3 .

    16.8

    onomata.txt

    () voles.txt.

    0,

    .

    #include

    #include

    voidread_files(charon[][20], floatvol[][6]);

    main()

    {

    inti,j,k,akyres=0;

    charonomata[10][20],temp[20];

    floatvoles[10][6],max[10],tt;

    read_files(onomata,voles); onomatavoles .

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    119/138

    C 3

    FILE*fp1,*fp2;

    inti,j;

    fp1=fopen("onomata.txt","r"); ono-mata.txt.

    if(fp1==NULL)

    {

    puts("onomata.txt");

    exit(1);

    }

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    120/138

    C 3 .

    //

    main()

    {

    inttest[10]={5,67,8,3,56,87,12,14,9,27},tt,i,k;

    test.

    printf("=%d\n",check_sort(test,10));

    //test[]for(i=1;i=i;k--)

    {

    if(test[k]test[k-1])

    {tt=test[k];

    test[k]=test[k-1];

    test[k-1]=tt;

    }

    }

    }

    printf("=%d\n",check_sort(test,10));

    }

    16.10 100 n

    (0 n-1).

    .

    -

    .

    int:intinsert(charpin[], intn, intar). -

    , n(ar) -

    .

    120

  • 8/13/2019 apantiseis_v3

    121/138

    C 3

    n(1) , n-

    (.. ).

    #include

    #include

    intinsert(intpin[],intn, intar)

    {

    inti,thesi=0;

    if(n>=100) returnn;

    for(i=0;ipin[i]) thesi++;

    for(i=n;i>thesi;i--)

    pin[i]=pin[i-1];

    pin[thesi]=ar;

    returnn+1;}

    main()

    {

    inttest[20]={5,67,8,3,56,87,12,14,9,27},tt,i,k,n=10;//test[]

    for(i=1;i=i;k--)

    {

    if(test[k]

  • 8/13/2019 apantiseis_v3

    122/138

    C 3 .

    17

    17.1 -

    ,-

    -

    .

    main()

    {

    inti,ar,*pin;

    printf(":");

    scanf("%d",&ar);

    pin=(int*)calloc(ar,sizeof(int));

    intar.

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    123/138

    C 3

    17.3

    -

    stoixeia.-

    10o .

    structstoixeia{

    charonoma[15];charaddress[20];charthl[13];int

    ilikia;};

    main()

    {

    intar;

    struct stoixeia *pin;

    printf(":");

    stoixeiaar.

    scanf("%d",&ar);

    pin=(structstoixeia *)calloc(ar,sizeof(structstoixeia));

    printf(":");

    scanf("%s",pin[9].onoma);

    printf(":");

    scanf("%s",pin[9].address);

    ( pin[9]).

    printf(":");

    scanf("%s",pin[9].thl);

    printf(":");

    scanf("%d",&pin[9].ilikia);

    }

    (struct stoixeia *) calloc().calloc()-void(424 ).

    17.4 17.2

    10

    (50 100 )

    .

    17.2

    :

    k=(float*)realloc(k,50*sizeof(float));

    realloc()block "" k(100float 50) (

    block) k.

    block (-425 ).

    17.5 :

    .

    .malloc(5,100)500 byte .

    http://c.bytes.gr 123

  • 8/13/2019 apantiseis_v3

    124/138

    C 3 .

    free(100)100 byte .

    calloc()malloc().

    17.6 times.txt

    .

    .

    .

    .

    #include

    #include

    main()

    {

    FILE*fp;

    float*pin,sum,mo,temp;inti,k,plithos;

    fp=fopen("times.txt","r");

    if(fp==NULL)

    {

    printf("");

    exit(2);

    }

    fscanf(fp,"%d",&plithos);

    pin=(float*)calloc(plithos,sizeof(float));

    (plithos) .

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    125/138

    C 3

    18

    18.1 a100 .

    a.

    structnode

    {437 .

    intdata;

    structnode *next;

    }*list_head,*neos;

    voidadd_node_to_list();

    main()

    {

    inti,a[100];for(i=0;inext = list_head;data.

    list_head=neos;next-, list_head, .

    }

    18.2 a100 .

    -

    a.

    #include

    #include

    #include

    #include

    structnode

    {

    int data;

    structnode *next;

    structnode *previous;

    data, -o ., (434).

    }*list_head,*neos;

    http://c.bytes.gr 125

  • 8/13/2019 apantiseis_v3

    126/138

    C 3 .

    structnode *find_place();

    voidadd_node_to_list();

    main()

    {

    inta[100],i;

    list_head=NULL;

    a[] .

    for(i=0;idata) tp=p;

    p=p->next; .

    }

    returntp;

    }

    voidadd_node_to_list(ar)

    ar, -

    intar;

    {

    structnode *temp_next,*thesi;

    thesi=find_place(ar);

    neos = (structnode *)malloc(sizeof(structnode));

    neos->data=ar;thesiNULL if(thesi==NULL)

    {

    if(list_head!=NULL) .

    {

    list_head->previous=neos;

    neos->next=list_head;

    neos->previous=NULL;

    list_head=neos;

    } .

    else

    {

    neos->next=NULL;

    neos->previous=NULL;

    list_head=neos;

    }

    }else thesiNULL

    () -.

    126

  • 8/13/2019 apantiseis_v3

    127/138

    C 3

    {

    temp_next=thesi->next;

    thesi->next=neos;

    neos->previous=thesi;

    neos->next=temp_next;

    }

    }

    -.

    display_all()

    {

    structnode *p;

    p=list_head;

    while(p!=NULL)

    {

    printf("%d\n",p->data);

    .

    p=p->next;.

    }

    }

    -.

    18.3 a100 .

    -

    a.

    - 452~460 .

    #include#include

    #include

    #include

    data, -o .

    structnode

    {

    intdata;

    structnode *left;

    structnode *right;

    };

    structnode *root;

    structnode *newnode();

    structnode *insert();

    voiddisplay();

    main()

    {

    inta[100],i;

    for(i=0;i

  • 8/13/2019 apantiseis_v3

    128/138

    C 3 .

    root=NULL;a[], -.

    for(i=0;idata = num;

    new->left = NULL;new->right = NULL;

    return(new);

    }

    structnode *insert(intnum)

    num. .

    {

    structnode *next,*current,*ptr;

    intisleft;

    next=current=root;

    ptr=newnode(num);

    if(root == NULL)

    {

    root=ptr;

    returnptr;

    }

    while(1)

    {

    if(num < current->data)

    {

    next = current->left;

    isleft=1;

    }

    else

    {

    next = current->right;

    isleft=0;

    }

    if(next == NULL)

    {

    if(isleft)

    current->left=ptr;else

    128

  • 8/13/2019 apantiseis_v3

    129/138

    C 3

    current->right=ptr;

    returnptr;

    }

    current=next;

    }

    }

    voiddisplay(structnode *ptr)

    {

    if(ptr == NULL) return;

    display(ptr->left);

    printf("%d ", ptr->data);

    (ptr) ..

    display(ptr->right);

    }

    18.4

    :

    structnode

    {

    float varos;

    structnode *next;

    }*list_head;

    list_head.

    .

    .

    floatcalculate_mo()

    {sum-.

    structnode *p;

    float sum=0,mo;

    int plithos=0;

    p=list_head; plithos "" .

    while(p!=NULL)

    {sum=sum+p->varos;

    - -sum(p->varos). plithos1.p=p->next;

    plithos++;

    }

    mo=sum/plithos; (sum/plithos) .returnmo;

    }

    http://c.bytes.gr 129

  • 8/13/2019 apantiseis_v3

    130/138

    C 3 .

    18.5 ,

    :

    structnode

    {

    float ilikia;

    structnode *left;

    structnode *right;

    }*root;

    root,

    .-

    root:

    intmax_data(structnode *rt)

    max_node ..{

    structnode *max_node;

    max_node= find_right_most(rt);

    if(max_node==NULL) ., .

    {

    printf("\n");

    exit(1);

    }

    elseIlikia.returnmax_node->ilikia;

    }

    structnode *find_right_most(structnode *rt)

    {

    structnode *current;

    if(rt==NULL) returnNULL;. .

    while(rt->right!=NULL) . ., NULL.

    {

    rt=rt->right;

    }

    returnrt;

    }

    -, -.max_data()-

    find_right_most()(

    "" 461 ).

    ilikia . .

    , .

    130

  • 8/13/2019 apantiseis_v3

    131/138

    C 3

    intmin_data(structnode *rt)

    {

    structnode *min_node;

    min_node= find_left_most(rt);

    min_node..

    if(min_node==NULL)

    {

    printf("\n");

    ., .

    exit(1);

    }

    else

    returnmin_node->ilikia;

    Ilikia.

    }

    structnode *find_left_most(structnode *rt)

    {

    structnode *current;

    if(rt==NULL) returnNULL; -. .while(rt->left!=NULL) . ., NULL.

    {

    rt=rt->left;

    }

    returnrt;

    }

    -, .min_data()

    find_left_most()

    ("" 461 ).-

    ilikia. .

    , .

    float mo(structnode *rt)

    {

    if(count(rt)!=0)returnsum(rt)/count(rt);

    . , .

    _/_.

    else

    {

    printf("\n");

    ., .

    exit(1);

    }

    }

    intcount(structnode *ptr)

    {

    if(ptr == NULL) return0;

    -..

    return1+count(ptr->left)+count(ptr->right);

    http://c.bytes.gr 131

  • 8/13/2019 apantiseis_v3

    132/138

    C 3 .

    }

    floatsum(structnode *ptr)

    {

    if(ptr == NULL) return0;

    sum() -ilikia..

    returnptr->ilikia+sum(ptr->left)+sum(ptr->right);

    }

    mo() sum() -count() . -

    _/.

    18.6 -

    .

    ("") :

    #include - 452~460 .

    #include

    #include

    #include

    data, -.

    structnode

    {

    chardata[30];

    structnode *left;

    structnode *right;

    };

    structnode *root;

    structnode *newnode();

    structnode *insert();

    voiddisplay();

    main()

    {

    charonoma[30];

    root=NULL;

    while(1)

    {

    printf(":");

    gets(onoma);

    if(strcmp(onoma,"")==0)break;

    onoma[]. -.

    insert(onoma);To , .}

    display(root);.}

    structnode *newnode(charlex[])lex.

    132

  • 8/13/2019 apantiseis_v3

    133/138

    C 3

    {

    structnode *new;

    new=(structnode *)malloc(sizeof(structnode));

    if(new==NULL)

    {

    puts("No memory");

    returnNULL;

    }

    strcpy(new->data,lex);

    new->left = NULL;

    new->right = NULL;

    return(new);

    }

    structnode *insert(charlex[])

    lex . .

    {structnode *next,*current,*ptr;

    intisleft;

    next=current=root;

    ptr=newnode(lex);

    if(root == NULL)

    {

    root=ptr;

    returnptr;

    }

    while(1)

    {

    if(strcmp(lex,current->data)==-1)

    {

    next = current->left;

    isleft=1;

    }

    else

    {

    next = current->right;

    isleft=0;

    }

    if(next == NULL)

    {

    if(isleft)

    current->left=ptr;

    else

    current->right=ptr;

    returnptr;

    }

    current=next;

    }}

    http://c.bytes.gr 133

  • 8/13/2019 apantiseis_v3

    134/138

    C 3 .

    voiddisplay(structnode *ptr)

    {

    if(ptr == NULL) return;

    display(ptr->left);

    printf("%s\n", ptr->data);

    (ptr) ..

    display(ptr->right);

    }

    18.7

    :

    structnode

    {

    char onoma[30];structnode *next;

    }*list_head;

    list_head.

    .

    ONOMATA.

    voidlist_to_file()

    {. .structnode *p;

    FILE *fp;

    if((fp=fopen("ONOMATA","w")) == NULL)

    {

    printf("");

    return;

    }

    p=list_head;

    while(p!=NULL)

    {

    fputs(p->onoma,fp);- , .

    p=p->next;}

    fclose(fp);

    }

    134

  • 8/13/2019 apantiseis_v3

    135/138

    C 3

    18.8 -

    ONOMATA ()

    () :

    #include

    #include

    #include

    #include

    structnode

    {

    char data[30];

    structnode *next;

    }*list_head,*neos;

    data, -o ., (441).

    structnode *find_place(charlex[]);

    voidadd_node_to_list(charlex[]);

    main()

    {

    list_head=NULL;

    read_all();

    .

    display_all();

    }

    structnode *find_place(charlex[]){

    structnode *p,*tp;

    p=list_head;

    - .-, -.tp=NULL;NULL -, .while(p!=NULL)

    {

    if(strcmp(lex,p->data)==1) tp=p;

    p=p->next; .}

    returntp;lex[], -

    }

    voidadd_node_to_list(charlex[])

    {

    structnode *temp_next,*thesi;

    thesi=find_place(lex);

    neos = (structnode *)malloc(sizeof(structnode));

    strcpy(neos->data,lex);thesiNULL if(thesi==NULL)

    {

    if(list_head!=NULL) .

    {

    http://c.bytes.gr 135

  • 8/13/2019 apantiseis_v3

    136/138

    C 3 .

    neos->next=list_head;

    list_head=neos;.}

    else

    {

    neos->next=NULL;

    list_head=neos;

    }

    }

    else

    {

    temp_next=thesi->next;

    thesiNULL ( ) -.

    thesi->next=neos;

    neos->next=temp_next;

    }

    }

    .

    display_all()

    {

    structnode *p;

    p=list_head;

    while(p!=NULL)

    {

    printf("%s\n",p->data);

    .

    p=p->next; .

    }

    }

    read_all()

    {

    FILE*fp;

    charlex[30];

    fp=fopen("onomata.txt","r");

    while(!feof(fp))

    {

    fscanf(fp,"%s",lex);

    add_node_to_list(lex);

    lex[], -

    }

    }

    -.

    136

  • 8/13/2019 apantiseis_v3

    137/138

    C 3

    18.9 :

    -

    .

    ,

    .

    , -

    .

    -

    .

    -

    -.

    http://c.bytes.gr 137

  • 8/13/2019 apantiseis_v3

    138/138

    C 3 .

    19

    19.1 :

    main()

    {

    inta,b;

    cin >> a >> b;

    if(a>b)

    cout