Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dop_Prog_3cem_2010.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
874.5 Кб
Скачать

2.6 Передача параметрів в функцію main()

Приклад 2.16

#include <stdio.h>

#include <conio.h>

int main(int argc,char **argv,char **envp)

{clrscr();

for(int i=0;i<argc;i++)

printf("argv[%d]=%s\n",i,argv[i]);

puts(“\nСреда окружения”);

while(*envp)

puts(*envp++);

getch();

return 0;}

Приклад 2.17

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main(int argc,char **argv)

{clrscr();

char str[]="Secret";

if(strcmp(argv[1],str)!=0)

{printf("Error\n"); getch(); return 1;}

printf("Programma ");

printf("%s %c.%c.\n",argv[2],argv[3][0],argv[4][0]);

int x, a=5, b=7,res1;

sscanf(argv[5],”%d”,&x);

res1=(a+b)*x;

printf("res1=%d\n”,res1);

getch();

return 0;}

2.7 Рекурсивні та інлайн-функції

Приклад 2.18

long fact(int k)

{if(k<0) return 0;

if (k==0} return 1;

return k* fact(k-1);}

void main()

{int n=5;

long F_n=fact(n);

printf (“%d!=%ld”,n,F_n);

}

Приклад 2.19

double expo(double a, int n)

{if (n==0) return 1;

if (a==0) return 0;

if(n>0) return a*expo(a,n-1);

if(n<0) return expo(a,n+1)/a;}

void main()

{int n1=3,n2=-2;

double arg1=2.0, arg2=5.0;

double res1=expo(arg1,n1);

printf (“%.3lf^(%d)=%.3lf\n”, arg1,n1,res1);

double res2= expo(arg2,n2);

printf (“%.3lf^(%d)=%.3lf\n”, arg2,n2,res2);

}

Приклад 2.20

inline float mod(float x=0,float y=0)

{return sgrt(x*x+y*y);}

inline int max(int a,int b)

{return (a>b)?a:b;

void main()

{float f1=4.5,f1=-2.5,res1;

res1=mod(f1,f2);

int n1=7,n2=-5,res2;

res2=max(n1,n2); }

printf (“res1=%d res2=%d\n”, res1,res2);

2.8 Функції, що повертають покажчик

Приклад 2.21

#include <stdio.h>

int *func(int ,int []);

int main()

{const N=5;

int *b,arr[N]={3,5,7,0,9};

if((b=func(N,arr))!=NULL)

{*b=1; printf("b=%p *b=%d\n”,b,*b);}

return 0;}

int *func(int n,int a[])

{for(int i=0;i<n;i++)

if(a[i]==0) return &a[i];

return NULL;}

Приклад 2.22

#include <stdio.h>

#include <string.h>

char* fch(char *ch1,char *ch2)

{char *str=ch2;

if(strlen(ch1)>strlen(ch2)) str=ch1;

return str; }

int main()

{char *st1="abcde";

char *st2="abcd";

char *st3=fch(st1,st2);

printf("st1=%p st2=%p st3=%p\n”,st1,st2,st3);

puts(st3); //или puts(fch(st1));

return 0;}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]