实验3

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

 代码功能:随机生成行和列,打印10次“hi,April~”,每次间隔1000ms

task2-1

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 long long fac(int n); // 函数声明
 4 
 5 int main() {
 6     int i, n;
 7 
 8     printf("Enter n: ");
 9     scanf("%d", &n);
10 
11     for (i = 1; i <= n; ++i)
12         printf("%d! = %lld\n", i, fac(i));
13     system("pause");
14     return 0;
15 }
16 
17 // 函数定义
18 long long fac(int n) {
19     static long long p = 1;
20 
21     p = p * n;
22 
23     return p;
24 }

 

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 long long fac(int n); // 函数声明
 4 
 5 int main() {
 6     int i, n;
 7 
 8     printf("Enter n: ");
 9     scanf("%d", &n);
10 
11     for (i = 1; i <= n; ++i)
12         printf("%d! = %lld\n", i, fac(i));
13     system("pause");
14     return 0;
15 }
16 
17 // 函数定义
18 long long fac(int n) {
19     static long long p = 1;
20 
21     p = p * n;
22     printf("p = %lld\n", p);
23     return p;
24 }

 task 2-2

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 int func(int, int); // 函数声明
 4 
 5 int main() {
 6  int k = 4, m = 1, p1, p2;
 7  p1 = func(k, m); // 函数调用
 8 
 9  p2 = func(k, m); // 函数调用
10 
11  printf("%d, %d\n", p1, p2);
12  system("pause");
13  return 0;
14 }
15 
16 // 函数定义
17 
18 int func(int a, int b) {
19  static int m = 0, i = 2;
20  i += m + 1;
21  m = i + a + b;
22  return m;
23 }

 stastic:变量的值保留上一次调用的值

task 3

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

 task 4

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 
 4 int main() {
 5     int n, m;
 6 
 7     while(scanf("%d%d", &n, &m) != EOF)
 8         printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m));
 9     
10     return 0;
11 }
12 int func(int n, int m)
13 {
14     int i,up=1,down=1,ans;
15     if(n>m && m!=0)
16          {for(i=n-m+1;i<=n;i++)
17               up=up*i;
18           for(i=1;i<=m;i++)
19               down=down*i;
20           ans=up/down;}
21     if(n==m)
22         ans=1;
23     if(n<m)
24         ans=0;
25     if(m==0)
26         ans=1;
27     return ans;
28 }

 

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 
 4 int main() {
 5     int n, m;
 6 
 7     while(scanf("%d%d", &n, &m) != EOF)
 8         printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m));
 9     
10     return 0;
11 }
12 int func(int n, int m)
13 {
14     int i,ans;
15     if(n==m)
16         ans=1;
17     if(n<m)
18         ans=0;
19     if(m==0)
20         ans=1;
21     if(n>m &&m!=0)
22         ans=func(n-1,m)+func(n-1,m-1);
23     return ans;
24 }

 task 5

 1 # include < stdio.h>
 2 # include < stdlib.h>
 3 # include  <math.h>
 4 void hanoi(unsigned int n, char from, char temp,char to);
 5 void moveplate(unsigned int n, char from, char to);
 6 
 7 int main()
 8 {
 9     unsigned int n;
10     int    i;
11     while((scanf("%u",&n)!=EOF))
12     {
13         hanoi(n,'A','B','C');
14         i=pow(2.0,n*1.0)-1;
15         printf("一共移动了%d次\n",i);
16     }
17     return 0;
18 }
19 void hanoi(unsigned int n,char from, char temp, char to)
20 {
21     if(n==1)
22         moveplate(n,from,to);
23     else
24     {    hanoi(n-1,from,to,temp);
25         moveplate(n, from,to);
26         hanoi(n-1,temp, from,to);
27     }
28 }
29 void moveplate(unsigned int n, char from, char to)
30 {
31     printf("%u:%c-->%c\n",n,from,to);
32     
33 }

 task 6

 1 #include <stdio.h>
 2 #include <math.h>
 3 long func(long s);   // 函数声明
 4 
 5 int main()
 6 {
 7 
 8     long s, t;
 9 
10     printf("Enter a number: ");
11     while (scanf("%ld", &s) != EOF) {
12         t = func(s); // 函数调用
13         printf("new number is: %ld\n\n", t);
14         printf("Enter a number: ");
15     }
16 
17     return 0;
18 }
19 long func(long s)
20 {
21     int a,b=0,i=1;
22     long ans;
23     while(s!=0)
24         {
25             a=s%10;
26             if(a%2!=0&&a!=0)
27                {
28                    b=pow(10.0,i-1)*a+b;
29                    i=i+1;
30                }
31             s=s/10;
32 
33          }
34     return b;
35 }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/23522085.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

五一~感恩回馈,SolidKits工具折扣来袭!

SOLIDWORKS插件多样且丰富,有着不同的种类和用途,可以为SOLIDWORKS软件本身提升使用效率,更快速的响应你的操作方式。SolidKits自主设计研发多款SOLIDWORKS增效插件,包括:自动化参数设计插件、高级BOM插件、批量编码器插件、标准件增强工具等,也可提供按需定制开发服务。…

什么是uniapp----分包

前言 还是同样的需求(uniapp的主包要求大小不得大于2MB),但是就算将能封装的都封装了还是会超过2MB,本文将介绍第二个优化点:分包开发 一、什么是分包开发? 有很多小伙伴一听分包开发认为就是多建几个文件夹,到时候引用就行了,说对对,但也不对,慢慢看下去就知道原因了…

【高级RAG技巧】使用二阶段检索器平衡检索的效率和精度

一 传统方法 之前的文章已经介绍过向量数据库在RAG(Retrieval Augmented Generative)中的应用,本文将会讨论另一个重要的工具-Embedding模型。一般来说,构建生产环境下的RAG系统是直接使用Embedding模型对用户输入的Query进行向量化表示,并且从已经构建好的向量数据库中检…

邮件安全不容忽视,教你如何防止邮件泄密!

邮件作为企业日常沟通的重要工具,却也是信息泄露的高风险环节。为了确保邮件传输的安全,可以通过集成华企盾DSC数据防泄密系统来增强邮件的安全性。下面是如何利用华企盾DSC系统防止邮件泄密的一些建议:使用邮件白名单功能:您可以设置邮件白名单,确保敏感文件只能发送到授…

马斯克的 xAI 融资 60 亿美元;英伟达收购两家 AI 创企丨 RTE 开发者日报 Vol.193

红杉资本、昆仑万维、字节跳动 开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有…

Ubuntu 22.04.4 LTS磁盘扩容

安装gpartedsudo apt updatesudo apt install gparted然后启动gpartedsudo gparted启动成功会完成一个新的对话框,直接调整磁盘大小的话会提示失败扩容查看只读文件系统的详细信息,点击Information(信息) 查看磁盘的挂载位置按顺序运行以下命令sudo -i mount -o remount -r…