首页 > 其他分享 >实验三

实验三

时间:2024-04-29 13:22:25浏览次数:21  
标签:return int long char 实验 func include

task1

#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中字符串
}

 

功能:在屏幕上随机打印出文本

 

task2-1

// 利用局部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;
}

 

 

task2-2

// 练习:局部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;
}

 

一致

static特性:在每次调用函数时,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(n)
{

   long long f;
   if(n==1)
   f=1;
   else
   f=func(n-1)*2+1;
   return f;

}

 

 

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)
{   int f,a=1,b=1,c=1,i,j,k;
    for(i=1;i<=n;i++)
    a*=i;
    for(j=1;j<=m;j++)
    b*=j;
    for(k=1;k<=n-m;k++)
    c*=k;
    f=a/b/c;
    return f;
}

 递归方法:

#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 f;
    if(n==m||m==0)
    f=1;
    else if(n<m)
    f=0;

    else 
    f=func(n-1,m)+func(n-1,m-1);
    return f;
}

 

task5

#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;
    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);
    }
    else{
        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;
    }
    else{
        return 2*sum(n-1)+1;
    }
}

 

task6

#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 = 0;
    long a,t = 1;
    while(s != 0){
        a = s%10;
        if(a%2 != 0){
            ans += t*a;
            t*= 10;
        }
        s /=10;
    }
    return ans;
}

 

标签:return,int,long,char,实验,func,include
From: https://www.cnblogs.com/gumianqingshu/p/18150691

相关文章

  • 实验5
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声......
  • 实验3 C语言函数应用编程
    1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明......
  • 实验3
    任务一:`#include<stdio.h>include<stdlib.h>include<time.h>include<windows.h>defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明intma......
  • 实验3
    task1.c#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函......
  • 实验三
     1.任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数......
  • 实验报告3
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明int......
  • 实验三
    TASK1`#include<stdio.h>include<stdlib.h>include<time.h>include<windows.h>defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){intline,col,i;chartext......
  • 实验3
    `#include<stdio.h>include<stdlib.h>include<time.h>include<windows.h>defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明intmain()......
  • 实验三—软件测试
    一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;1、利用自动化测试工具进行自动化单元测试。三、实验内容1、选择开发环境,IDEA或PYCHARM任选其一;2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;3、对所编写代码设计测试用例;4、基于所选择......
  • 实验三
    TASK1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){ intline,col,i; c......