实验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;
 }

 

  


posted @ 2021-11-24 21:01  葛帆  阅读(50)  评论(1编辑  收藏  举报