实验三

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

 

实验任务2:

 
//*计算从1到n的阶乘*//
#include<stdio.h>
long long fac(int n);//*函数的声明*//
int main() {
    int i, n;
    printf("Enter n:");
    scanf_s("%d", &n);
    for (i = 1; i <= n; i++)
        printf("%d!=%11d\n", i, fac(i));
    return 0;
}
long long fac(int n) {   //*函数的定义*//
    static long long p = 1;//*定义p为一个静态变量*//
    p = p * n;
    return p;
}
 

局部变量static是为了让p保存上一次运算

实验任务3:

 
#include<stdio.h>
long long func(int n);//*函数声明*//
int main() {
    int n;
    long long f;
    while (scanf_s("%d", &n) != EOF) {
        f = func(n);
        printf("n=%d,f=%d\n", n, f);
    }
    return 0;
}
long long func(int n) {//*函数定义*//
    int f;
    if (n == 1)
        f = 1;
    else
    f = 2 * func(n - 1) + 1;
    return f;
}
 

实验任务4:

 
#include <stdio.h>
int func(int n, int m);//*函数声明*//
int main() {
    int n, m;
    while (scanf_s("%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 f;
    if (n < m)
        return 0;
    if (n == m || m == 0)
        return 1;
    else
        f = func(n - 1, m) + func(n - 1, m - 1);
    return f;
}
 

实验任务5:

 
#include<stdio.h>
int mul(int n, int m);//*函数声明*//
int main() {
    int n, m;
    while (scanf_s("%d%d", &n, &m) != EOF)
        printf("%d*%d=%d\n", n, m, mul(n, m));
    return 0;
}
int mul(int n, int m) //*函数定义*//
{
    int M;
    if(m==0||n==0)
        M = 0;
    else
        M = n + mul(n, m - 1);
    return M;
}
 

实验任务6:

 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void hanoi(unsigned int n, char from, char temp, char to);
void moveplate(unsigned int n, char from, char to);
int main() {
    unsigned int n,m;
    while (scanf_s("%u", &n) != EOF) {
        hanoi(n, 'A', 'B', 'C');
        m = pow(2, n) - 1;
        printf("一共移动了%d次\n", m);
    }
    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);
}
 

实验任务7:

 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int isprime(int n);
int main() {
    int a, b, c;
    printf("请输入一个20以内的偶数:\n");
    while (scanf_s("%d", &a)<=20) {
        for (b = 2; b <= a; b++) {
            c = a - b;
            if (isprime(b) && isprime(c) && (b + c) == a)
                printf("%d=%d+%d\n", a, b, c);
        }
    }
    return 0;
}
int isprime(int n) {
    if (n == 1)
        return 0;
    int k;
    for (k = 2; k <= sqrt(1.0 * n); k++)
        if (n % k == 0)
            return 0;
    return 1;
}
 

实验任务8:

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

posted @ 2022-11-06 19:07  WA自动机!  阅读(45)  评论(0编辑  收藏  举报