实验4 函数和数组

实验任务1

结论 不能,返回值有两个,不方便如此设计。

实验任务2

 1 #include <stdio.h>
 2 long long fac(int);
 3 main()
 4 {
 5     int i,n;
 6     printf("Enter n:");
 7     scanf("%d",&n);
 8     for(i = 1; i <= n; i ++)
 9         printf("%d! = %lld\n", i, fac(i));
10 }
11 long long fac(int n)
12 {
13     static long long p = 1;
14     
15     p = p * n;
16     return p;
17 }

ex2_2

p1 = 8, p2 = 17;

结论

static变量使变量值稳定,不会循环一次就清除。

实验任务3

 1 #include <stdio.h>
 2 
 3 #define N 1000
 4 int fun(int n,int m,int bb[N]) 
 5 {
 6     int i, j, k = 0, flag;
 7     
 8     for(j = n; j <= m; j ++) 
 9     {
10           flag = 1;   
11         for(i = 2; i < j; i ++)
12             if(j % i == 0) 
13             {  
14                flag = 0;
15                break;
16             }
17         if(flag == 1) 
18            bb[k ++]=j;
19     }
20     return k;
21 }
22 
23 int main()
24 {
25     int n = 0, m = 0, i, k, bb[N];
26     
27     scanf("%d",&n);
28     scanf("%d",&m);
29     
30     for(i = 0; i < m - n;i ++)
31         bb[i]=0;
32         
33     k = fun(n, m, bb); 
34     
35     for(i = 0; i < k; i ++)
36         printf("%4d", bb[i]);
37         
38     return 0;
39 }

实验任务4

 1 #include <stdio.h>
 2 long long fun(int n);   
 3 char th(int n);
 4 int main() {
 5     int n;
 6     long long f;
 7     
 8     while(scanf("%d", &n) != EOF) {
 9         f = fun(n);  
10         printf("n = %d, f = %lld\n", n, f);
11     }
12     
13     return 0;
14 }
15 
16 long long fun(int n)
17 {
18     if(n == 1)
19         return 1;
20     else if(n <= 63)
21         return 2 * fun(n - 1) + 1;
22     
23 }

实验任务5

#include <stdio.h>

void draw(int n, char symbol);   

#include <stdio.h> 
int main() {
    int n, symbol;
    
    while(scanf("%d %c", &n, &symbol) != EOF) {
        draw(n, symbol);  
        
        printf("\n");
    }
    
    return 0;
} 


void draw(int b,char c)
{
    int n, i, s;
    for(n = 1; n <= b; n ++)
        {
        for(s = 1; s <= b - n; s ++)
            printf(" ");
            for(i = 1; i <= 2 * n - 1; i ++)
            {
            printf("%c",c);
            if(i == 2 * n - 1)
            printf("\n");
            }
    }
    printf("\n");
    return;
    
} 

posted on 2020-12-02 20:39  黑卡卡卡蒂  阅读(73)  评论(1)    收藏  举报