实验三


1
#define N 80 2 3 void printText(int Line, int col, char text[]); 4 void printSpaces(int n); 5 void printBlankLines(int n); 6 7 int main() 8 { 9 int line, col, i; 10 char text[N]="hi, May~"; 11 12 srand(time(0)); 13 14 for(i=0;i<=10;i++) 15 { 16 line = rand()%25; 17 col = rand()%80; 18 printText(line, col, text); 19 Sleep(1000); 20 } 21 22 return 0; 23 } 24 25 void printSpaces(int n) 26 { 27 int i; 28 29 for(i=1; i<=n; i++) 30 { 31 printf(" "); 32 } 33 } 34 35 void printBlankLines(int n) 36 { 37 int i; 38 39 for(i=1; i<=n; i++) 40 { 41 printf("\n"); 42 } 43 } 44 45 void printText(int line, int col, char text[]) 46 { 47 printBlankLines(line-1); 48 printSpaces(col-1); 49 printf("%s",text); 50 }

在屏幕十个随机位置每隔1秒打印hi,May#include <stdio.h> 

实验任务2:

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

static变量特性:该变量只可在其被声明的函数中被调用,且再次进入该函数时保存值不变。

实验任务3:

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

实验任务4:

 1 #include<stdio.h>
 2 void hanoi(unsigned int n, char from, char temp, char to);
 3 void moveplate(unsigned int n, char from, char to);
 4 int count(int n);
 5 int main()
 6 {
 7     unsigned int n;
 8     while (scanf("%u", &n) != 0)
 9     {
10         hanoi(n, 'A', 'B', 'C');
11         printf("一共移动了%d次\n\n", count(n));
12     }
13     return 0;
14 }
15 void hanoi(unsigned int n, char from, char temp, char to)
16 {
17     if (n == 1)
18     {
19         moveplate(n, from, to);
20     }
21     else
22     {
23         hanoi(n - 1, from, to, temp);
24         moveplate(n, from, to);
25         hanoi(n - 1, temp, from, to);
26     }
27 }
28 void moveplate(unsigned int n, char from, char to)
29 {
30     printf("第%u个盘子:%c-->%c\n", n, from ,to);
31 }
32 int count(int n)
33 {
34     int i = 1,s;
35     if (n == 1)
36         s = 1;
37     else
38         s = 2 * count(n - 1) + 1;
39     return s;
40 }

实验任务5:

 1 #include <stdio.h>
 2 int Isprime(int n){
 3 int i;
 4 for(i=2;i<=n-1;i++)
 5 {
 6 if(n%i==0) 
 7 return 0;
 8 }
 9 return 1;
10 }
11 int main(){
12 int i,n;
13 for(n=4;n<=20;n+=2)
14 {
15 for(i=2;i<=n/2;i++)
16 {
17 if(Isprime(i)*Isprime(n-i)){
18 printf("%d=%d+%d\n",n,i,n-i);
19 break;
20 }
21 }
22 }
23 return 0;
24 }

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

 

posted @ 2022-04-25 19:40  映月三花  阅读(10)  评论(2编辑  收藏  举报