实验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, April~";
    
    srand(time(0)); // 以当前系统时间作为随机种子
    
    for(i = 1; i <= 10; ++i) {
        line = rand() % 25;
        col =  rand() % 80;
        print_text(line, col, text);
        Sleep(1000);  // 暂停1000ms
    }
    
    return 0; 
}

// 打印n个空格 
void print_spaces(int n) {
    int i;
    
    for(i = 1; i <= n; ++i)
        printf(" ");
}

// 打印n行空白行
void print_blank_lines(int n) {
    int i;
    
    for(i = 1; i <= n; ++i)
        printf("\n");
 } 

// 在第line行第col列打印一段文本 
void print_text(int line, int col, char text[]) {
    print_blank_lines(line-1);      // 打印(line-1)行空行 
    print_spaces(col-1);            // 打印(col-1)列空格
    printf("%s", text);         // 在第line行、col列输出text中字符串
}

在25行,80
列的空间里随机打印10个“hi,April~”

// 利用局部static变量的特性,计算阶乘

#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 = %lld\n", p);
    p = p * n;

    return p;
}

// 练习:局部static变量特性

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

局部statict特征:保留上次函数变化的值

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

#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){
    int i,j,up,down,ans;
    for(i=n,up=1;n>=i-m+1;n--)
      up=up*n;
    for(j=1,down=1;j<=m;j++)
    down=down*j;
    ans=up/down;
    return ans;
 } 

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

#include<stdio.h>
#include<stdlib.h>

void hanoi(int n,char from,char temp,char to);
void moveplate(int n,char from,char to);
int sum(int n);
int main()
{
    int n,k;
    char A,B,C;
    while(scanf("%d",&n)!=EOF)
    {
        hanoi(n,'A','B','C');
        k=sum(n);
        printf("一共移动了%d次\n",k);
        system("pause");
    }
    return 0;
}

void moveplate(int n,char from,char to)
{
    printf("%d: %c--> %c\n",n,from,to);
}
void hanoi(int n,char from,char temp,char to)
{
    if(n==1){
        moveplate(n,from,to);
    }
    if(n>1){
        hanoi(n-1,from,to,temp);
        moveplate(n,from,to);
        hanoi(n-1,temp,from,to);
    }
        
}
int sum(int n){
    if(n==1){
        return 1;
    }
    if(n>1){
        return 2*sum(n-1)+1;
    }
}

#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 ans;
long digit,t=1;

ans=0;
while(s!=0){
digit=s%10;

if(digit%2){
ans+=t*digit;
t*=10;
}
s/=10;
}
return ans;
}

// 函数定义
// 待补足。。。

 

 
posted @ 2024-04-28 22:38  朱笑雨  阅读(14)  评论(0)    收藏  举报