实验三

1,

#include <time.h>

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

#define N 80

void print_text(int line,int col,char text[]);

void print_spaces(int n);

void print_blank_lines(int n);

 

int main(){

    int line,col,i;

    char text[N]="hi,april~";

    

    srand(time(0));

    

    for(i=1;i<=10;i++){

        line= rand()%25;

        col=rand()%80;

        print_text(line,col,text);

        Sleep(1000);

    }    

    return 0;

}

 void print_spaces(int n){

     int i;

     for(i=1;i<=n;i++){

         printf(" ");

     }

 }

 void print_blank_lines(int n){

     int i;

     for(i=1;i<=n;i++){

         printf("\n");

     }

 }

 

 void print_text(int line,int col,char text[]){

     print_blank_lines(line-1);

     print_spaces(col-1);

     printf("%s",text);

 }

2.

 

#include <stdio.h>

 

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;

 

}

 

 2-2.

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

}

 

3.

#include <stdio.h>

long long func(int n);

 

int main(){

    int n;

    long long f;

    

    while(scanf("%d",&n)!=EOF){

        f=func(n);

        printf("n=%d,f=%lld\n",n,f);     

    }

    

    return 0;

}

long long func(int n){

      if(n==0)

     return 0;

     return 2*func(n-1)+1;    

 

}

 

 

4.

#include <stdio.h>

int func(int n,int m);

 

int main(){

    int n,m;

    while(scanf("%d%d",&n,&m)!=EOF){

        printf("n=%d,m=%d,ans=%d\n",n,m,func(n,m));

    }    

    return 0;

}

 

int func(int n,int m){ if (n==m || m==0){ return 1;} else if(n<m){return 0; }

return func(n-1,m)+func(n-1,m-1);

}

 

 

 

 

5.

#include <stdio.h>

double mypow(int x,int y);

 

int main(){

    int x, y;

    double ans;

    while(scanf("%d%d",&x,&y)!=EOF){

        ans=mypow(x,y);

        printf("%d%d次方:%g\n\n",x,y,ans);

    }

    return 0;

}

double mypow(int x,int y){

    if(y==0){

        return 1;

    }

    else if(y>0){

        return (double)x*mypow(x,y-1);

    }

    else if(y<0)

    {

        return (mypow(x,y+1)/x);

    }

}

 

 

6.

#include <stdio.h>

void move(int x, int y);

 void hanoi(int n,char a,char b,char c);

long long func(int n);

 

void move(int x, int y){

    printf("%c->%c\n",x,y);

}

void hanoi(int n,char a,char b,char c)

{

    if(n==1)

    {

        move(a,c);

    }

    else{

        hanoi(n-1,a,b,c);

        move(a,c);

        hanoi(n-1,b,a,c);

    }

}

 

long long func(int n){

      if(n==0)

     return 0;

     return 2*func(n-1)+1;    

 

}

 

int main()

{

    int n=0;

    while(scanf("%d",&n)!=EOF){

    

    hanoi(n,'A','B','C');

    printf("一共移动了%lld次\n",func(n));

    }return 0;

}

 

 

7.

#include <stdio.h>

#include <math.h>

int is_prime(int n);

int main(){

    int prime[20];int i;int j=2;

    for(i=2;i<=20;i++){

        prime[i]=i*is_prime(i);

    }

    for(i=4;i<=20;i+=2){

        for(j=2;;j++){

            if(prime[i-j]!=0){

                printf("%d = %d + %d\n",i,j,i-j);

                break;

            }     

        }

    

    }

 

    return 0;

}

int is_prime(int n){

    int i;int r; int f=1;

    for(i=2;i<=sqrt(n);i++){

        r=n%i;

        if(r==0){f=0;break;

        }

        else{f=1;

        }

    }

    return f;

}

 

 

8.

#include <stdio.h>

#include <math.h>

long func(long s);

int main(){

    long s,t;

    printf("Enter a number:");

    while(scanf("%ld",&s)!=EOF){

        t=func(s);

        printf("new number is:%ld\n\n",t);

        printf("Enter a number:");

    }

    return 0;

}

 

long func(long s){

    long g=0,l=0;int t;

    while(s!=0){

        t=s %10;

        s=s/10;

        if(t%2!=0){

            l=l*10+t;

        }

    }

    while(l!=0){

        t=l%10;

        l=l/10;

        g=g*10+t;

    }

    return g;

}

 

posted @ 2023-04-06 12:48  赵,洲  阅读(30)  评论(0)    收藏  举报