首页 > 其他分享 >实验3

实验3

时间:2023-10-30 17:34:23浏览次数:19  
标签:return int long 实验 func printf include

实验任务1:

通过三个函数,达成每隔相同的时间在随机的行和位置输出相同的文本的效果

#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);  // 暂停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中字符串
}

 

 

 

 

实验任务2:

2.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 = %11d\n",p);
    p = p * n;

    return p;
}

 

 2.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的特性:

保持函数内变量的内容不变,具有持久性。

 

 

实验任务3:

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

 

 

 

 

实验任务4

4.1:迭代

#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 s1=1,s2=1,i;
    double p;
    for(i =1; i <= m; ++i){
        s2*=i;
    }
    for(i = n; i >= n-m+1;--i){
        s1*=i;
    }
    p=s1/s2;
    return p;
}

 

 

 

 

4.2:递归

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

 

 

 

 

 

 

 实验任务6:

#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){
    int p=0,m,n,i=0;
    while(s > 0){
        m=s%10;
        if(m%2==1){
            p+=m*pow(10,i);
            i+=1;
        }
        s/=10;
    }
    return p;
}

 

 

 

标签:return,int,long,实验,func,printf,include
From: https://www.cnblogs.com/zy050101-/p/17798377.html

相关文章

  • 实验3
    任务1源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,chartext[]);//函数声明7voidprint_spaces(intn);//函数声明8voidprint_blank......
  • 实验三
    #include<stdio.h>longlongfunc(intn);//函数声明intmain(){intn;longlongf;while(scanf("%d",&n)!=EOF){f=func(n);//函数调用printf("n=%d,f=%lld\n",n,f);}return0;......
  • 实验三
    #include<stdio.h>longlongfunc(intn);//函数声明intmain(){intn;longlongf;while(scanf("%d",&n)!=EOF){f=func(n);//函数调用printf("n=%d,f=%lld\n",n,f);}return0;......
  • 实验3
    实验11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn);101......
  • 实验3
    task1line17-19循环10次并随机赋给line0~24其中一个数,给col0~79其中一个数voidprintf_spaces打印n个空格 voidprintf_blank_lines打印n行空白voidprintf_text利用随机生成的line与col打印出line-1与col-1空白行与空格后,光标在第line行第col列打印出文本。......
  • 实验3
    task11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,chartext[]);//函数声明7voidprint_spaces(intn);//函数声明8voidprint_blank_l......
  • 基于LiteOS的智慧农业案例实验分享
    最近在指导一位读者朋友做毕业设计,该毕设是关于端云互通的,基于小熊派+LiteOS+华为云。在指导他的过程中我也学到了不少东西,这里通过一个案例实验(智慧农业)给大家分享一些知识。实验框图相关模块简介1、STM32L431RCT62、LiteOSLiteOS是华为开发的轻量级实时操作系统:LiteOS源码GitHub......
  • 设计模式实验五
    8u软件设计                 石家庄铁道大学信息学院 实验5:建造者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解建造者模式的动机,掌握该模式的结构;2、能够利用建造者模式解决实际问题。 [实验任务一]:计算机组装使用建造者模式,完......
  • 设计模式实验四
    软件设计                 石家庄铁道大学信息学院 实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模......
  • C++实验心得
    C++类文件写通讯录系统生成项目,创建类文件...调出工作区,manager属性类文件运用string型变量的找不到此数据类型问题,需要在对应.h文件定义上命名空间并引用<string>头文件类文件引用主函数全局变量main.cpp externinta; //导出 ...Class_one.cpp inta; //去ex......