实验任务3

发布时间 2023-11-06 13:01:22作者: 符周彦彧
task1.c
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #include <windows.h>
 5 #define N 80
 6 
 7 void print_text (int line , int col ,char text[]);
 8 void print_space( int n);
 9 void print_blank_lines( int n);
10 
11 int main(){
12     int line , col, i;
13     char text[N] = "hi , November~";
14     
15     srand (time (0));
16     
17     for (i = 1; i<= 10 ; ++i){
18         line = rand () % 25 ;
19         col = rand() % 80 ;
20         print_text(line , col , text);
21         Sleep(1000);
22     
23     }
24     return 0;
25 } 
26 
27 void print_spaces (int n){
28     int i;
29     
30     for (i = 1;i <= n ; ++i)
31     printf (" ");
32 }
33 
34 void print_blank_lines (int n) {
35     int i;
36     
37     for(i = 1; i <= n; ++i )
38       printf ("\n");
39     
40 }
41 
42 void print_text (int line , int col ,char text[]){
43     print_blank_lines(line-1);
44     print_spaces(col -1);
45     printf("%s", text);
46 }

运行结果

task2.c

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

task 2_2

 1 #include <stdio.h>
 2 int func(int, int);        
 3 int main() {
 4     int k = 4, m = 1, p1, p2;
 5 
 6     p1 = func(k, m);    
 7     p2 = func(k, m);    
 8     printf("%d, %d\n", p1, p2);
 9 
10     return 0;
11 }
12 
13 
14 int func(int a, int b) {
15     static int m = 0, i = 2;
16 
17     i += m + 1;
18     m = i + a + b;
19 
20     return m;
21 }

运行结果

 

运行结果

task3.

 1 #include <stdio.h>
 2 long long func ( int n);
 3 
 4 int main (){
 5     int n;
 6     long long f;
 7     
 8     while (scanf ("%d", &n) != EOF){
 9         f = func(n);
10         printf("n = %d, f = %11d \n", n, f);
11     }
12     
13     return 0;
14 }
15 
16 long long func(int n){
17     static long long a, f;
18     int i;
19     a = 1;
20     for (i = 1; i<=n ; ++i){
21 
22         a = a*2;
23 }
24     f = a - 1;
25     return f;    
26 }

运行结果

task.4

 1 #include <stdio.h>
 2 #include<math.h>
 3 int func(int n, int m);
 4 int main() {
 5     int n, m;
 6     while(scanf("%d%d", &n, &m) != EOF)
 7     printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m));
 8     return 0;
 9 }
10 int func(int n, int m){
11     if(m>n)
12         return 0;
13     else if(m==n||m==0)
14         return 1;
15     else
16         return func(n-1,m)+func(n-1,m-1);
17 }

task 5

#include <stdio.h>
static int x;
int main()
{
void hanoi(int n, char a,char b,char c);
int m;
while(scanf("%d", &m)!=EOF){
hanoi(m, 'A', 'B', 'C');
printf("一共移动了%d次\n",x);
x=0;
}


return 0;
}

hanoi(int n, char a, char b, char c)
{
void move(char a, char c);
if (n == 1)
move(a, c);
else
{
hanoi(n - 1, a, c, b);
move(a, c);
hanoi(n - 1, b, a, c);
}
x++;
return x;
}

void move(char x, char y)
{
printf("%c-->%c\n", x, y);
}

task6

 1 #include <stdio.h>
 2 #include <math.h>
 3 long func(long s);
 4 int main() {
 5 long s, t;
 6 printf("Enter a number: ");
 7 while (scanf("%ld", &s) != EOF) {
 8 t = func(s);
 9 printf("new number is: %ld\n\n", t);
10 printf("Enter a number: ");
11 }
12 return 0;
13 }
14 #include<stdio.h>
15 long func(long x)
16 {
17 int n=10,m=0;
18 while (x)
19 {
20 int t=x%10;
21 if(t%2!=0)
22 {
23 m+=t*n/10;
24 n*=10;
25 }
26 x/=10;
27 }
28 return m;
29 }