double - мәліметтер типіне назар аударайық.
Факториалдың ерекшелігі сол үлкен емес сан болса да, нәтижесі өте үлкен
болуы мүмкін. Мысалы, 15 санының факториалы 1 307 674 368 000 тең
болады.
Факториалды есептеу үшін рекурсияны пайдалануды көрсететін
программа құрамыз. n факториалды есептеу
n! = (n-1)!*n
формуласына негізделген.
66
#include double fact(int num);
int main() {
int num=15;
double res;
res=fact(num);
printf(“%d факториал %15.0f\n тең”, num, res);
return();
}
double fact(int num) {
if (num<=1) return(1.0);
else
return(num*fact(num-1));
}
Функция анықтамасында көрсетілгенге сәйкес, параметрге көшіру
арқылы мәндері бойынша аргументтер беріледі. Аргументтер мен
параметрлері, саны және типі Си тілінде бақыланбайды. Функцияны
сипаттағанда қолданылатын формалды аргументтер мен функцияны
шақырғанда берілетін фактілік аргументтердің айырмашылығын білу қажет.
Формалды аргумент – программадағы шақырылатын айнымалы, фактілік
аргумент – программадағы айнымалыға меншіктелетін нақты мәні. Фактілік
аргумент тұрақты, айнымалы немесе күрделі өрнек болуы мүмкін. Фактілік
аргументтің типіне қатыссыз ол басында есептеледі, содан кейін оның
шамасы функцияға беріледі. Аргументтер тізімін үтір арқылы беруге болады.
Төмендегі программада негізгі функциясынан бөлек, екі функция
пайдаланылады. Ол функциялардың прототиптері программаның бастапқы
бөлімінде хабарлануы керек.
# include int zero(int u);
char ch(char u)
main() {
int x, y, z, zero();
char p, q, ch();
x=2; y=12; z=0; q=’0’;
printf(“x=”); zero(x);
zero(x+y+(x+y)^z);
printf(“q=”); ch(q);
}
int zero(int u) {
printf(“%d\n”, u);
}