首页 > 其他分享 >230330实验三

230330实验三

时间:2023-03-30 20:34:30浏览次数:37  
标签:return int long 实验 func ans include 230330

实验1

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #include <windows.h>
 5 #define N 80
 6 void print_text(int line, int col, char text[]); // 函数声明
 7 void print_spaces(int n); // 函数声明
 8 void print_blank_lines(int n); // 函数声明
 9 int main() {
10     int line, col, i;
11     char text[N] = "hi, April~";
12     srand(time(0)); // 以当前系统时间作为随机种子
13     for (i = 1; i <= 10; ++i) {
14         line = rand() % 25;
15         col = rand() % 80;
16         print_text(line, col, text);
17         Sleep(1000); // 暂停1000ms
18     }
19     return 0;
20 }
21 // 打印n个空格
22 void print_spaces(int n) {
23     int i;
24     for (i = 1; i <= n; ++i)
25         printf(" ");
26 }
27 // 打印n行空白行
28 void print_blank_lines(int n) {
29     int i;
30     for (i = 1; i <= n; ++i)
31         printf("\n");
32 }
33 // 在第line行第col列打印一段文本
34 void print_text(int line, int col, char text[]) {
35     print_blank_lines(line - 1); // 打印(line-1)行空行
36     print_spaces(col - 1); // 打印(col-1)列空格
37     printf("%s", text); // 在第line行、col列输出text中字符串
38 }

代码实现功能:随机地在某行某列打印字符串,之后再打印n个空格和n行空白行,循环十次,实现类似弹幕的效果

实验2

2.1

// 利用局部static变量的特性,计算阶乘
#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! = %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;
}

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;//i=3 i=8+1+3=12
    m = i + a + b;//m=3+a+b=8=p1 m=12+4+1=17
    return m;
}

static变量特性:在调用函数结束时,变量的值依然存在而不是消失,再次调用函数时,变量将以上一次调用结束时的值参与运算而非重新赋值.

实验3

 1 #include <stdio.h>
 2 long long func(int n); // 函数声明
 3 int main() {
 4     int n;
 5     long long f;
 6     while (scanf_s("%d", &n) != EOF) {
 7         f = func(n); // 函数调用
 8         printf("n = %d, f = %lld\n", n, f);
 9     }
10     return 0;
11 }
12 long long func(int n)
13 {
14     long long sum = 1;
15     for (int i = 1; i <= n; i++)
16     {
17         sum = 2*sum;
18     }
19     return sum - 1;
20 }

 

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

 

实验5

5.1

 1 #include <stdio.h>
 2 double mypow(int x, int y); // 函数声明
 3 int main() {
 4     int x, y;
 5     double ans;
 6     while (scanf_s("%d%d", &x, &y) != EOF) {
 7         ans = mypow(x, y); // 函数调用
 8         printf("%d的%d次方: %g\n\n", x, y, ans);
 9     }
10     return 0;
11 }
12 double mypow(int x, int y)
13 {
14     double ans=1;
15     if (y >= 0)
16     {
17         for (int i =1; i <= y; i++)
18         {
19             ans = ans * x;
20         }
21     }
22         else
23     {
24         for (int i = 1; i <= (-y); i++)
25         {
26             ans = ans / x;
27         }
28     }
29     return ans;
30 }

 

5.2

 1 #include <stdio.h>
 2 double mypow(int x, int y); // 函数声明
 3 int main() {
 4     int x, y;
 5     double ans;
 6     while (scanf_s("%d%d", &x, &y) != EOF) {
 7         ans = mypow(x, y); // 函数调用
 8         printf("%d的%d次方: %g\n\n", x, y, ans);
 9     }
10     return 0;
11 }
12 double mypow(int x, int y)
13 {
14     double ans = 1;
15     if (y == 0)
16     {
17         ans= 1;
18     }
19     else
20     {
21         if (y>0)
22         {
23             ans = x * mypow(x,y - 1);
24         }
25         else
26         {
27             ans = 1.0 / x /mypow(x,-y - 1);
28         }
29     }
30     return ans;
31 }

 

实验6

#include< stdio.h>
#include< stdlib.h>
void hanoi(unsigned int n, char from, char temp, char to); /*递归函数声明*/
void moveplate(unsigned int n, char from, char to);/*移动函数的声明*/
int i = 0;
int main() {
    unsigned int n;
    while (scanf_s("%u", &n) != EOF)
    {
        i = 0;
        hanoi(n, 'A', 'B', 'C');
        printf("一共移动了%d次\n", i);
    }
    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); /*n-1个盘子从A以C为中转移到B上*/
moveplate(n, from, to);/*将盘子n从A移到C上*/
hanoi(n - 1, temp, from, to);/*将 n-1个盘子从B以 A为中转移到 C上*/
}
}
void moveplate(unsigned int n, char from, char to)
{
    printf("%u:*c-->%c\n", n, from, to);
    i =i+ 1;
}

 

实验7

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int is_prime(int n);    //函数声明,判断素数 
 5 
 6 int main()
 7 {
 8     int even;
 9     even = 1;
10     for (even = 1; even < 21; even++)
11     {
12         for (int i = 1; i <= even / 2; i += 2)
13             if (is_prime(i) && is_prime(even - i))
14                 printf("%d=%d+%d\n", even, i, even - i);
15         
16     }
17     return 0;
18 }
19 
20 // 判断素数,若是返回1,否则返回0 
21 int is_prime(int n)
22 {
23     if (n == 1)
24         return 0;
25     int temp = (int)sqrt(n);
26     for (int i = 2; i <= temp; i++)
27         if (n % i == 0)
28             return 0;
29     return 1;
30 }

 

实验8

 1 #include <stdio.h>
 2 #include <math.h>
 3 long func(long s); // 函数声明
 4 
 5 int main() {
 6     long s, t;
 7     printf("Enter a number: ");
 8     while (scanf_s("%ld", &s) != EOF) {
 9         t = func(s); // 函数调用
10         printf("new number is: %ld\n\n", t);
11         printf("Enter a number: ");
12     }
13     return 0;
14 }
15 long func(long s)
16 {
17     int   d;
18     long  sl = 1;
19     long t = 0;
20     while (s > 0)
21     {
22         d = s % 10;//取余操作,取最后一位数字。
23 
24         if (d % 2 != 0)
25         {
26             t = d * sl + t;
27             sl *= 10;
28         }
29        
30         s /= 10;//除操作,改变最后一位数字。
31     }
32     return t;
33 }

 

标签:return,int,long,实验,func,ans,include,230330
From: https://www.cnblogs.com/Orangpetofi/p/17273193.html

相关文章

  • Exp3-免杀原理 实验报告—20201229赵斌
    免杀原理与实践基础问题回答Q1:杀软是如何检测出恶意代码的?(1)基于特征码的检测特征码是一段或多段数据,如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特......
  • 实验三
    实验三实验任务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);intmain(){in......
  • 博客首发Cisco实验
    第一步(划分VLAN):  主机方:     1.根据划分好的子网表格填写主机IP、子网掩码、默认网关。  2.添加给每个部门划分的VLAN,给VLAN配置IP、子网掩码:    interfacevlan70      ipaddress192.168.2.226255.255.255.240      n......
  • Python计算机视觉基础实验3-显著性检测(HC&FC)
    一、实验基础图像显著性检测图像的显著性是指对于给定一副真实世界中的场景图像,人们会自动地识别出感兴趣区域,忽略掉不感兴趣的区域,即将注意力集中在图像中某些显著的部分区域。图像的注意预测,也称视觉显著性检测,指通过智能算法模拟人的视觉系统特点,预测人类的视觉凝视点(就是全神贯......
  • 202031607232-张玉国 实验一 软件工程准备 - 软件工程
    项目与内容项目内容班级博客链接班级博客本次作业要求链接作业要求我的课程学习目标学会在程序设计前进行合理的需求分析、可行性研究本次作业在哪些方面帮我实现学习目标带我了解软件工程任务任务一已完成问卷调查的填写。任务二已在博客园平......
  • 易基因: m6A RNA甲基化研究的前期探索性实验思路|干货系列
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。近年来,m6ARNA甲基化作为国家自然科学基金表观遗传学研究的热门领域,相关研究成果层出不穷,高分文章不断......
  • 网络对抗实验三 免杀原理与实践
    目录《网络对抗技术》——Exp3免杀原理与实践1.1实践目标1.2基础知识任务一:正确使用免杀工具或技巧1.正确使用msf编码器2.msfvenom生成如jar之类的其他文件3.使用veil-e......
  • Python自然语言处理基础实验2_基于HMM的中文分词
    实验目的了解并掌握基于隐马尔可夫模型(HMM)的分词方法,重点掌握Viterbi算法。实验要求1、对给定的语料库(或自行准备)进行统计分析,确定HMM模型的三个参数;2、根据上一步求得的......
  • 实验2 字符串和列表
    task1.pyx='nbaFIFA'print(x.upper())print(x.lower())print(x.swapcase())print()x='abc'print(x.center(10,'*'))print(x.ljust(10,'*'))print(x.rjust......
  • 实验2
    task1:1x='nbaFIFA'2print(x.upper())3print(x.lower())4print(x.swapcase())5print()67x='abc'8print(x.center(10,'*'))9print(x.ljust......