实验三

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#define N 80

void printText(int line,int col, char text[]);
void printSpaces(int n);
void printBlanklines(int n);

int main()
{
    int line, col, i;
    char text[N]= "hi,May~";
    
    srand(time(0));
    
    for(i=1;i<=10;++i)
    {
        line = rand()%25;
        col = rand()%80;
        printText(line,col,text);
        Sleep(1000); 
    }
    
    return 0;
} 
void printSpaces(int n)
{
    int i;
    for(i=1;i<=n;i++)
        printf(" ");
}
void printBlanklines(int n)
{
    int i;
    for(i=1;i<=n;i++)
        printf("\n");
}
void printText(int line,int col,char text[])
{
    printBlanklines(line-1);
    printSpaces(col-1);
    printf("%s",text);
}

在25行和80列建打印“Hi,May”,每隔1s打印一次。

#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;
    printf("p=%d\n",p);
    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;
}

与自己所猜想值一致,为8和17

static的初始量只初始一次,后面的static的值都用前一个static的值。

#include<stdio.h>
long long fun(int n);
int main()
{
    int n;
    long long f;
    while(scanf("%d",&n)!=EOF)
    {
        f=fun(n);
        printf("n=%d, f=%lld\n",n,f);
    }
    return 0;
 } 
 long long fun(int n)
 {
     long long f;
     if(n==0)
     f=0;
     else
     f=2*fun(n-1)+1;
     return f;
 }

#include<stdio.h>
#include<math.h>
void mov(int n,char x,char y)
{
    printf("第%d个盘子: %c --> %c\n",n,x,y);
}
void ace(int n,char a, char b,char c)
{
    if(n==1)
    {   
        mov(n,a,c);
    }
    else
    {   
        ace(n-1,a,c,b);
        mov(n,a,c);
        ace(n-1,b,a,c);
    }
}
int main()
{
    int n;
    int s;
    while(scanf("%d",&n)!=EOF)
    {
    ace(n,'A','B','C');
    s=pow(2,n)-1;
    printf("一共移动了%d次\n",s);}
    return 0;
}

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int is_prime(int n);
int main()
{
    int i,m;
    for(i=4;i<=20;i+=2)
    {
        for(m=2;m<=i/2;m++)
        if(is_prime(m)==1&&is_prime(i-m)==1)
           printf("%d=%d+%d\n",i,m,(i-m));
    }
    
    return 0;
}
int is_prime(int n)
{
    int i;
    for(i=2;i<=sqrt(n);i++)
     if(n%i==0)
     break;
     if(i>sqrt(n)&&n>1)
     return 1;
     else
     return 0;
     
}

#include<stdio.h>
#include<math.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 i,a,b=0;
    for(i=0;s!=0;s=s/10){
        a=s%10;
        if(a%2!=0)
        {
            b=b+a*pow(10,i);
            i++;
        }
    }
    return b;
}

 

posted @ 2022-04-21 20:45  jackytherui  阅读(42)  评论(0)    收藏  举报