March 2019 0 37 Report
Dlaczego nie działa mi ten program w języku C, gdy wprowadzam np. m = 4, n = 0 (i większe liczby)?
Czy mógłby ktoś odnależć błąd?

Funkcja Ackermanna jest definiowana rekurencyjnie:

n+1, jeżeli m = 0;
A(m-1, 1), jeżeli m>0, n=0;
A(m-1, A(m, n-1)), jeżeli m>0, n>0.

#include
#include
int ack(int, int);
int main() {
int m, n, wartosc;
printf("Wprowadz 2 liczby: \n", m, n);
scanf("%d %d", &m, &n);
if (m < 0 || n < 0) printf("Funkcja nie egzystuje\n");
} else {
wartosc = ack(m, n);
printf("Wartosc funkcji jest : %d\n", reiksme);
}
return 0;
}
int ack(int m, int n) {
if (m == 0) return n+1;
else if (m > 0 && n == 0) return ack(m-1, 1);
else if (m > 0 && n > 0) return ack(m-1, ack(m, n-1));
}
More Questions From This User See All

Recommend Questions



Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.