实验3
#include <stdio.h> #pragma warning (disable:4996) long long fac(int n); int main() { int i, n; printf("Enter n: "); scanf("%d", &n); for (i = 1; i <= n; ++i) printf("%d! = %lld\n", i, fac(i)); return 0; } long long fac(int n) { static long long p = 1; p = p * n; printf("%lld ", p); return p; }
#include <stdio.h> int func(int, int); int main() { int k = 4, m = 1, p1, p2; p1 = func(k, m); p2 = func(k, m); printf("%d,%d\n", p1, p2); return 0; } int func(int a, int b) { static int m = 0, i = 2; i += m + 1; m = i + a + b; return (m); }
每次调用静态局部变量的时候都用上次调用后的值
#pragma warning(disable:4996) #include <stdio.h> void printSymbol(int n, char symbol); int main() { int n; char symbol; while (scanf("%d %c", &n, &symbol) != EOF) { printSymbol(n, symbol); printf("\n"); } return 0; } void printSymbol(int n, char symbol) { for(int i = 0;i<n;i++){ printf("%c", symbol); } }
#pragma warning(disable:4996) #include <stdio.h> void printSymbol(int n, char symbol); int main() { int n; char symbol; while (scanf("%d %c", &n, &symbol) != EOF) { printSymbol(n, symbol); printf("\n"); } return 0; } void printSymbol(int n, char symbol) { if (n == 1) printf("%c", symbol); else { printf("%c", symbol); printSymbol(n - 1, symbol); } }
迭代好,代码简单。
#pragma warning (disable:4996) #include <stdio.h> long long fun(int n); int main() { int n; long long f; while (scanf("%d", &n) != EOF) { f = fun(n); printf("n = %d, f = %lld\n", n, f); } return 0; } long long fun(int n) { int z; if (n == 1) { z = 1; } else { z = 2 * fun(n - 1)+1; } return z; }
#pragma warning(disable:4996) #include<stdio.h> int isPrime(int n) { int i; for (i = 2;i <= n-1;i++) { if (n % i == 0) { break; } } if (i<n) return 0; else return 1; } int main() { int n=0; for (int i = 101;i < 201;i++) { if (isPrime(i) == 0){ printf(" %d", i); n++; } } printf("\n"); printf("%d", n); return 0; }
#include <stdio.h> #pragma warning (disable:4996) #include<math.h> long fun(long s); int main() { long s, t; printf("Enter a number: "); while (scanf("%ld", &s) != EOF) { t = fun(s); printf("new number is: %ld\n\n", t); printf("Enter a number: "); } return 0; } long fun(long s) { int a[100],i = 0, b, y = 0; while (s % 10 != 0) { if (s % 10 % 2 != 0) { a[i] = s % 10; i++; } s = s / 10; } i--; for (;i >= 0;i--) y += a[i] * pow(10, i); return y; return b; }
#include <stdio.h> #pragma warning (disable:4996) double fun(int n); int main() { int n; double s; printf("Enter n(1~10): "); while (scanf("%d", &n) != EOF) { s = fun(n); printf("n = %d, s= %f\n\n", n, s); printf("Enter n(1~10): "); } return 0; } double fun(int n) { int p; double sum; p = 1; sum = 0; for (int i = 1;i <= n;i++) { p = p * -1 * i; sum = sum + 1 / (double)p * -1; } return sum; }