实验三

源程序1

#include<stdio.h>
#include<time.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);
 }

截图1

 源程序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 ;
  else
     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==0||n==m||m==0)
       return 1;
    else if(n<m)
       return 0;
    else
       return func(n-1,m)+func(n-1,m-1);
}  

截图4

 

 源程序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){
        if(y==0)
          return 1;
          return mypow(x,y-1)*x;
    }
    if(y<0){
        double z=1.0/x;
        return mypow(x,y+1)*z; 
    }    
    }

截图

#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)
{
    double result=1.0;
    int i;
    if(y>=0){
        for(i=0;i<y;i++){
            result*=(double)x;
        }
    }
    else{
        for(i=0;i<-y;i++){
            result/=(double)x;
        }       
    }
    return result;
}

截图

源程序6

#include <stdio.h>
#include <stdlib.h>
 
void hanoi(unsigned int n, char from, char temp, char to);
void moveplate(unsigned int n, char from, char to);
int total=0; 
int main() {
    unsigned int n;
    
    while (scanf("%u", &n) != EOF){
    
    hanoi(n, 'A', 'B', 'C');
    printf("一共移动了%d次",total);
    total = 0;
    }
    system("pause");
    
    return 0;
}
 
void hanoi(unsigned int n, char from, char temp, char to) {
    if(n == 1)
        moveplate(n, from, to);
    else {
        hanoi(n - 1, from, to, temp);
        moveplate(n, from, to);
        hanoi(n - 1, temp, from, to);
    }
}
 
void moveplate(unsigned int n, char from, char to) {
    printf("%u: %c --> %c\n", n, from, to);
    total++;
}
 

截图

源程序7

#include <stdio.h>
int is_prime(int n);
 
int main() {
    int num = 4; 
    while (num <= 20) {
        printf("%d = ", num);
        int num1 = 2; 
        int num2 = num - num1; 
        while (num1 <= num2) {
            if (is_prime(num1) && is_prime(num2)) {
                printf("%d + %d", num1, num2);
                break;
            }
            num1++;
            num2--;
        }
        num += 2;
        printf("\n");
    }
    return 0;
}
 
int is_prime(int n) {
    if (n <= 1) {
        return 0;
    }
    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}

截图

源程序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 newone= 0;
    long weishu = 1;
    while (s > 0) {
        int oldone = s % 10;  
        if (oldone % 2 != 0) {
            newone += oldone * weishu;  
            weishu *= 10; 
        }
        s /= 10; 
    }
    return newone;
}

截图

 

posted @ 2023-04-05 23:33  贾清萍  阅读(10)  评论(0编辑  收藏  举报