1.1 递归
例题1 N!
int fac(int n) {
int f;
if (n < 0) {
printf("input error!\n");
}
else {
if((n == 0) || (n == 1)) {
f = 1;
} else {
f = n * fac(n-1);
}
}
return (f);
}
int main() {
int f = 0, y = 0;
int n = 0;
printf("please input integer number: ");
scanf("%d", &n);
y = fac(n);
printf("%d! is %d", n, y);
return 0;
}
int f;
if (n < 0) {
printf("input error!\n");
}
else {
if((n == 0) || (n == 1)) {
f = 1;
} else {
f = n * fac(n-1);
}
}
return (f);
}
int main() {
int f = 0, y = 0;
int n = 0;
printf("please input integer number: ");
scanf("%d", &n);
y = fac(n);
printf("%d! is %d", n, y);
return 0;
}
运行结果如下图所示:
例题2 斐波拉契数列
//Fibonacci sequence
int fibo(int n) {
if ((n == 0) || (n == 1)) {
return n;
} else {
return fibo(n-1) + fibo(n-2);
}
}
int main() {
int y = 0;
int n = 0;
printf("Please input the number item of fibonacci sequence: ");
scanf("%d", &n);
for(int i = 0; i < n+1; i++) {
printf("%d ", fibo(i));
}
return 0;
}
int fibo(int n) {
if ((n == 0) || (n == 1)) {
return n;
} else {
return fibo(n-1) + fibo(n-2);
}
}
int main() {
int y = 0;
int n = 0;
printf("Please input the number item of fibonacci sequence: ");
scanf("%d", &n);
for(int i = 0; i < n+1; i++) {
printf("%d ", fibo(i));
}
return 0;
}
运行结果如下图所示:
1.2 循环
例题1
int main() {
int x = 10;
int y = 10;
int i;
for(i = 0; x > 8; y = i++) {
printf("x: %d, y: %d, i: %d\n", x--, y, i);
printf("x: %d, y: %d, i: %d\n\n", x, y, i);
}
return 0;
}
int x = 10;
int y = 10;
int i;
for(i = 0; x > 8; y = i++) {
printf("x: %d, y: %d, i: %d\n", x--, y, i);
printf("x: %d, y: %d, i: %d\n\n", x, y, i);
}
return 0;
}
其运行结果如下图所示:
例题2
统计每个ASCII字符出现的次数。
void histogram(char* src, int* hist) {
int i;
while (*src != '\0') {
hist[*src++]++;
}
}
int main() {
int i;
char *src = "aaaabvdefghjkeoawr123890e";
int hist[256] = {0};
histogram(src, hist);
for(i = 0; i <= 255; i++){
printf("hist[%d]: %d, \n", i, hist[i]);
}
return 0;
}
int i;
while (*src != '\0') {
hist[*src++]++;
}
}
int main() {
int i;
char *src = "aaaabvdefghjkeoawr123890e";
int hist[256] = {0};
histogram(src, hist);
for(i = 0; i <= 255; i++){
printf("hist[%d]: %d, \n", i, hist[i]);
}
return 0;
}