实验四

实验一:

个人认为该函数有两个返回值,而返回时只返回一个值,故不能用该方式。

 

实验二

 

 1 #include <stdio.h>
 2 long long fac(int n);  // 函数声明 
 3 
 4 int main() {
 5     int i,n;
 6     
 7     printf("Enter n: ");
 8     scanf("%d", &n);
 9     
10     for(i=1; i<=n; ++i) 
11         printf("%d! = %lld\n", i, fac(i)); 
12     
13     return 0;
14 }
15 
16 // 函数定义 
17 long long fac(int n) {
18     static long long p = 1;
19     
20     p = p*n;
21     
22     return p;
23 }

 

 

 

static变量将每次运行函数后的结果存储回原来的变量中,再次进入函数时使用上次结果。

 

实验三

 1 //寻找两个整数之间的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
 2 // 例如,输入6和21,则输出为:7 11 13 17 19。
 3 
 4 #include <stdio.h>
 5 
 6 #define N 1000
 7 int fun(int n,int m,int bb[N]) {
 8     int i,j,k=0,flag;
 9     
10     for(j=n;j<=m;j++) {
11                
12         for(i=2;i<j;i++)
13             if(j%i==0) {  
14                flag=0;
15                break;
16         }
17         if(i==j) 
18            bb[k++]=j;
19     }
20     return k;
21 }
22 
23 int main(){
24     int n=0,m=0,i,k,bb[N];
25     
26     scanf("%d",&n);
27     scanf("%d",&m);
28     
29     for(i=0;i<m-n;i++)
30         bb[i]=0;
31         
32     k=fun(n,m,bb); 
33     
34     for(i=0;i<k;i++)
35         printf("%4d",bb[i]);
36         
37     return 0;
38 }

 

 

实验四

 1 #include <stdio.h>
 2 long long fun(int n);   // 函数声明 
 3 
 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     int a,b;
19     long long s;
20     
21     for(a=1,b=2;n>0;n-=1)
22     {
23         a*=b;
24     }
25     
26     s=a-1;
27     
28     return s;
29 } 

 

 

 

实验五

 1 #include <stdio.h>
 2 
 3 void draw(int n, char symbol);  // 函数声明 
 4 
 5 #include <stdio.h> 
 6 int main() {
 7     int n, symbol;
 8     
 9     while(scanf("%d %c", &n, &symbol) != EOF) {
10         draw(n, symbol);  // 函数调用 
11         
12         printf("\n");
13     }
14     
15     return 0;
16 } 
17 
18 
19 void draw(int n,char symbol)
20 {
21     int j,a,k;
22 
23     for(j=1,a=0;a<n;j++)
24 {
25     for(k=1;k<n+j;k++)
26  {
27     if(k<n+1-j)
28     {
29     printf("%c",' ');
30     }
31     else if(k>=n-j+1||k<n+j)
32     {
33         printf("%c",symbol);
34     }
35  }
36     printf("\n");
37     a+=1;
38 }
39     
40 }

 

posted @ 2020-12-04 08:30  违规昵称4E32  阅读(48)  评论(0)    收藏  举报