首页 > 编程语言 >实验3—C语言函数应用编程

实验3—C语言函数应用编程

时间:2023-11-03 17:11:37浏览次数:35  
标签:10 return 函数 int 编程 long C语言 func include

1、实验任务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, November~";
12     
13     srand(time(0)); // 以当前系统时间作为随机种子
14     
15     for(i = 1; i <= 10; ++i) {
16         line = rand() % 25;
17         col = rand() % 80;
18         print_text(line, col, text);
19         Sleep(1000); // 暂停1000ms
20     }
21     return 0;
22 }
23 // 打印n个空格
24 void print_spaces(int n) {
25     int i;
26     
27     for(i = 1; i <= n; ++i)
28         printf(" ");
29 }
30 
31 // 打印n行空白行
32 void print_blank_lines(int n) {
33     int i;
34     
35     for(i = 1; i <= n; ++i)
36     printf("\n");
37 }
38 
39 // 在第line行第col列打印一段文本
40 void print_text(int line, int col, char text[]) {
41     print_blank_lines(line-1); // 打印(line-1)行空行
42     print_spaces(col-1); // 打印(col-1)列空格
43     printf("%s", text); // 在第line行、col列输出text中字符串
44 }

运行结果截图

实验结论:字符串的随机出现

2、实验任务2

源代码

 1 // 利用局部static变量的特性,计算阶乘
 2 #include <stdio.h>
 3 long long fac(int n); // 函数声明
 4 int main() {
 5     int i, n;
 6     printf("Enter n: ");
 7     scanf("%d", &n);
 8     for (i = 1; i <= n; ++i)
 9         printf("%d! = %lld\n", i, fac(i));
10     return 0;
11 }
12 // 函数定义
13 long long fac(int n) {
14     static long long p = 1;
15     printf("p=%lld\n",p);
16     p = p * n;
17     return p;
18 }

运行结果截图

源代码

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

运行结果截图

局部static变量特性:static变量可以使变量的访问范围控制在函数内,并且保存变量值至下一次调用,所占内存在程序运行结束时释放。即下一次调用时变量初始化值为上一次调用的最终值。

3、实验任务3

源代码

 1 #include <stdio.h>
 2 long long func(int n); // 函数声明
 3 int main() {
 4     int n;
 5     long long f;
 6     while (scanf("%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     if(n==0)
14         return 0;
15     else
16         return (func(n-1)+1)*2-1;
17 }

运行结果截图

4、实验任务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     int i,j;
14     int up=1,down=1;
15     for(i=0;i<=m-1;i++)
16         up*=n-i;
17     for(j=0;j<=m-1;j++)
18         down*=m-j;
19     return up/down;
20 }

运行结果截图

源代码

 

 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     if(n<m)
14         return 0;
15     if(n==0||m==n)
16         return 1;
17     else if(n==1)
18         return m;
19     else
20         return func(n-1,m)+func(n-1,m-1);
21 }

 

5、实验任务5

源代码

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 void hanoi(unsigned int n,char from,char temp,char to);/*递归函数声明*/
 4 void moveplate(unsigned int n,char from,char to);/*移动函数的声明*/
 5 long long func(int n);
 6 
 7 int main() {
 8     unsigned int n;
 9     while(scanf("%u",&n)!=EOF){/*输入盘子数目*/
10         hanoi(n,'A','B','C');
11         printf("一共移动了%lld次\n",func(n));
12     }
13         system ("pause");
14         return 0;
15 
16 }
17 void hanoi(unsigned int n,char from,char temp,char to){
18     int i=0;
19     i++;
20     if(n==1)
21         moveplate(n,from,to);
22     else
23     {
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     int i;
31     printf("%u:%c-->%c\n",n,from,to);
32 }
33  long long func(int n){
34     if(n==0)
35        return 0;
36     else
37         return (func(n-1)+1)*2-1;
38 }

运行结果截图

6、实验任务6

源代码

#include <stdio.h>
#include <math.h>
#define N 10000
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 length=0,k=0,m=0,t=0,j=1;
    k=s;
    while(s){
         s=s/10;
         length++;
    }
    s=k;
    int i;
    for(i=1;i<=length;i++)
    {
        m=s%10;
        s=(s-m)/10;
        if(m%2!=0){
            t+=m*j;
            j*=10;
        }
        else
            continue;
    }
    return t; 
 }
 

运行结果截图

7、实验任务7

源代码

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int square(int n) ;
 5 int cube(int n);
 6 int bubble_sort(int a[]);
 7 
 8 int main()
 9 {
10     int n=1,sq,cu,a[10],i;
11     while(1){
12     sq=square(n);
13     cu=cube(n);
14     i=0;
15     while(sq!=0){
16         a[i]=sq%10;
17         sq=sq/10;
18         i++;
19     }
20     while(cu!=0){
21         
22         a[i]=cu%10;
23         cu=cu/10;
24         i++;
25     }
26     bubble_sort(a);
27     if(a[0]==0&&a[1]==1&&a[2]==2&&a[3]==3&&a[4]==4&&a[5]==5&&a[6]==6&&a[7]==7&&a[8]==8&&a[9]==9)
28         break;
29     n++;
30 }
31     printf("%d\n",n);
32     
33     system("pause");
34     return 0;    
35 }
36 int square(int n){
37     n=n*n;
38     return n;
39 }
40 int cube(int n){
41     n=n*n*n;
42     return n;
43 }
44 int bubble_sort(int a[10]){
45     int i,j,t;
46     for(i=0;i<9;i++)
47         for(j=0;j<9-i;j++)
48             if(a[j]>a[j+1])
49             {
50                 t=a[j];
51                 a[j]=a[j+1];
52                 a[j+1]=t;
53             } 
54 }

运行结果截图

 

标签:10,return,函数,int,编程,long,C语言,func,include
From: https://www.cnblogs.com/SunYuTing/p/17797764.html

相关文章

  • MySQL使用函数、存储过程实现:向数据表快速插入大量测试数据
    实现过程创建表CREATETABLE`user`( `id`INT(11)NOTNULLAUTO_INCREMENT, `name`VARCHAR(20)DEFAULTNULL, `age`INT(3)DEFAULTNULL, `pwd`VARCHAR(20)DEFAULTNULL, `address`VARCHAR(30)DEFAULTNULL, PRIMARYKEY(`id`))ENGINE=INNODBAUTO_INCREMENT=......
  • 编程猫11岁学员拿到NOC决赛一等奖,妈妈分享教育心得
    来自广州的龙芷盈今年11岁,上五年级。她在编程猫学习编程快三年的时间,已经拿到了蓝桥杯国赛二等奖、NOC决赛一等奖。小盈妈妈说“小盈平常有点难管教、很倔强”,但同时也是个有主见、有规划的孩子,她会自己做好学习规划和时间管理,这也让她在学校和编程猫的学习中都收获了很好的成......
  • C语言 循环队列
    什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。什么是循环队列在实际使用队列时,为了使队列空间能重复使用,往往对......
  • 零代码编程:用ChatGPT批量重命名多个子文件夹里面的文件标题名
    一个文件夹:D:\英语学习图书配套资源\亲子英语游戏书,这本最好玩,里面有多个子文件夹:子文件夹里面的文件要重命名,将文件名称中的track替换为子文件夹名称:在ChatGPT中输入提示词:你是一个Python编程专家,要完成一个批量删除掉对话音频文件开头的任务,具体步骤如下:打开文件夹:D:\英语学习图......
  • C++函数重载
    在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是int、float、char、bool等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:voidsw......
  • C++构造函数初始化列表
    构造函数的一项重要功能是对成员变量进行初始化,为了达到这个目的,可以在构造函数的函数体中对成员变量一一赋值,还可以采用初始化列表。C++构造函数的初始化列表使得代码更加简洁,请看下面的例子:#include<iostream>usingnamespacestd;classStudent{private:......
  • C语言基础之基础的输入输出
    前言学一门编程语言,不能编写让用户输入数据然后输出处理后的数据的程序那么就等于没学,而在C语言中可以用printf()和scanf()函数进行输入和输出操作。这两个函数是内置的库函数,定义在stdio.h(头文件)中。printf()函数printf()函数用于输出操作。它将给定的语句打印到控制台......
  • C语言基础之第一个C程序
    前言在开始学习C语言的基础知识之前,我们需要学习如何编写、编译和运行第一个C程序。要编写第一个C程序,打开C控制台并编写以下代码,我这里直接使用vs2022进行代码的编写:#include<stdio.h>intmain(){ printf("Hello,World!"); return0;}运行效果如下:代码解......
  • C语言10进制转化为2进制
    #include<stdio.h>intmain(){ intx,i,flag=0x8000; scanf_s("%d",&x); for(i=0;i<16;i++){ if((flag&x)==0)printf("0"); elseprintf("1"); flag>>=1; } return0;}7,8,9行没怎么看懂,有......
  • Net 高级调试之五:如何在托管函数上设置断点
    一、简介今天是《Net高级调试》的第五篇文章。今天这篇文章开始介绍如何在托管方法和非托管方法设置断点,我们要想调试程序,必须掌握调试的一些命令,动态调试的命令,我们在上一篇文章已经讲过了。光有命令也是不行的,要让这些调试命令有用,必须可以在方法上设置断点,然后,再使用......