实验3

#include <stdio.h>
#include <stdlib.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, November~"; 
     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);
}

生成跳动动画

task2

#include <stdio.h>
long long fac(int n);
int main() {
    int i,n;
    printf("Enter:");
    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;
    printf("p=%lld\n",p);
    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的数据在使用时是上一次的结果

task3

#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;
    if(n>0){
    if(n==0)
    return 1;
    if(n>0)
    return 2*func(n-1)+1;}
}

task4

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

task5

#include <stdio.h>
int mul(int n, int m);
int main() {
int n, m;
while(scanf("%d%d", &n, &m) != EOF)
printf("%d * %d = %d\n", n, m, mul(n, m));
return 0;
}
int mul(int n,int m){
    int t,i;
    if(n<m)
    {
        t=n;
        n=m;
        m=t;
    }
    if(n==0||m==0)
    return 0; 
    else
    {
    if(m==1)
    return n;
    else return n+mul(n,m-1);}
    
}

task6

 #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 count=0;
 int main()
 {
     unsigned int n;
     while(scanf("%u",&n)!=EOF){
     hanoi(n,'A','B','C');
     printf("一共移动了%d次\n",count);
     count=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);
     count++;
 }

task7

#include<stdio.h>
int is_prime(int j);
int main(){
    int a,b,i;
    while(scanf("%d",&i)!=EOF){ 
    for(a=1;;a++){
    if(is_prime(a)){
        if(is_prime(b=i-a)){
            printf("%d=%d+%d\n",i,a,b);break;
        }
    }
    } 
    
} return 0;
}
int is_prime(int j)
{

    int m;
    for(m=2;m<j;m++)
    {
        if(j%m==0)
        break;
    }
    if(m==j)
    return 1;
    else
    return 0;
}

task8

#include <stdio.h>
long fun(long s); 
int main() {
long s, t;
printf("Enter a number: ");
while (scanf("%ld", &s) != EOF) {
t = fun(s); 
printf("new number is: %ld\n\n", t);
printf("Enter a number: ");
}
return 0;
}
long fun(long s){
    int a,b=1;
    int count=1,i;
    long h=0;
    while(s>0){
    a=s%10;
    if(a%2!=0){
    h=a*b+h;
    b*=10;}
    s=s/10;}
    return h;
     
     
}

 

posted @ 2022-11-06 17:04  独悲  阅读(18)  评论(0编辑  收藏  举报