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

实验3_C语言函数应用编程

时间:2023-11-05 21:45:20浏览次数:35  
标签:return 函数 int 编程 long C语言 char func include

task1.c

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

 功能:

随机在屏幕中的一个位置上生成  hi, November~,并重复执行十次

 

 task2_1.c

//利用局部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;
    
    p = p * n;

    return p;
} 

 

//利用局部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.c

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

 task3.c

#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){
    long long fn, a, i;
    for(a = 2, i = 1 ;i<n; i++){
        a = a*2;
    } 
    fn = a - 1;
    return fn;
}

 

task4_1.c

#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 i, j = 1, k = 1, cnm;
    for(i = 0; i < m ;i++){
        j = j * (n - i);
        k = k * (m - i);
    }
    return cnm = j / k;
}

 

 task4_2.c

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

for(;m < n; ){
return func( --n, m) + func( n, --m);

}
}

 task 5

#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("%u",&n) != EOF ){
    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);
        moveplate(n, from, to);
        hanoi(n - 1, temp, from, to);    
    }
}

void moveplate(unsigned int n, char form, char to){
    printf("%u:%c-->%c\n", n, form, to);
    i ++;
}

 

 task 6

#include <stdio.h>
#include <math.h>

long func(long s);
int j;

int main(){
    
    long s, t, i = 0;
    int d = 0, m = 0, j = 0;
    
    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 i = 0, t = 0, d = 0;
    long m = s ; 
    int x[100] = {0, 0};
    do{ 
        d = m % 10;
        if(d != d/2 + d/2){
            x[i++] = d;
        } 
        else{ 
        }  
        m = m / 10;                               
    }    
    while(m > 0);
    
    for(j = 0 ;j <= i;){
        int a, b; 
        for(a = 0, b = 1 ;a < j;){
            b = b * 10;
            a++;
        }
        t += x[j] * b;
        j++;
    }
    return t;
}

 

标签:return,函数,int,编程,long,C语言,char,func,include
From: https://www.cnblogs.com/NJ-1230/p/17798177.html

相关文章

  • C语言循环语句---其一
    一、while语句通常,我们可以用while语句实现一种循环,本质上就是满足条件后跳出循环,不满足条件则执行大括号中的语句。它的通常结构是这样的while(conditiom){code}比如,把1-100之间的偶数全部打印出来,就可以用这个代码intn=1while(n<=100){if(n%2==0)printf("%d",n);n++;}通常,还会......
  • 实验一 类和对象_基础编程1
    任务一task1.cpp#include<iostream>#include<string>#include<vector>#include<array>template<typenameT>voidoutput1(constT&obj){for(autoi:obj)std::cout<<i<<",";st......
  • linux 进程的管理和调度 --- __schedule() 函数分析
    运行队列Linux采用的是每个CPU都有自己的运行队列,这样做的好处:(1)每个CPU在自己的运行队列上选择任务降低了竞争;(2)某个任务位于一个CPU的运行队列上,经过多次调度后,内核趋于选择相同的CPU执行该任务,那么上次任务运行的变量很可能仍然在这个CPU缓存上,提高运行效率。 __schedule() ......
  • JUC并发编程学习笔记(十二)Stream流式计算
    Stream流式计算什么是Stream流式计算大数据:存储+计算集合、MySql这些的本质都是存储东西的;计算都应该交给流来操作!一个案例说明:函数式接口、lambda表达式、链式编程、Stream流式计算packageorg.example.stream;importjava.util.Arrays;importjava.util.List;impo......
  • 实验3 C语言函数应用编程
    实验任务1源代码:1#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_blan......
  • 分治算法(C语言)
    一、棋盘覆盖问题1、问题2、分析(1)当k>0时,将2k×2k棋盘分割为4个(2k-1)×(2k-1)子棋盘,如图(a)所示。每一次分解,都将原本大小的棋盘,划分为四份,即行号和列号各自缩减一半。(2)特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。(3)为将无特殊方格子棋盘转化为特......
  • 无涯教程-批处理 - 函数声明
    函数是一起组织以执行特定任务的一组语句。在批处理脚本中,采用类似的方法将逻辑语句组合在一起以形成一个函数。像任何其他语言一样,批处理脚本中的函数遵循相同的过程-FunctionDeclaration  - 它告诉编译器函数的名称,返回类型和参数。FunctionDefinition    -......
  • 【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库
    为什么需要开发自己的Go库在编程语言中,包(Package)和库(Library)是代码组织和复用的重要工具。在Go中,包是代码的基本组织单位,每个Go程序都由包构成。包的作用是帮助组织代码,提供封装和代码复用的机制。Go包可以包含函数、类型、变量和常量等,这些元素可以被其他包引用和使用。......
  • 【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库
    为什么需要开发自己的Go库在编程语言中,包(Package)和库(Library)是代码组织和复用的重要工具。在Go中,包是代码的基本组织单位,每个Go程序都由包构成。包的作用是帮助组织代码,提供封装和代码复用的机制。Go包可以包含函数、类型、变量和常量等,这些元素可以被其他包引用和使用。......
  • SATA基础+更改终端颜色+PCI.ids位置+Linux和Windows的scanf+C语言C++的局部变量与全局
    SATA基础https://zhuanlan.zhihu.com/p/554251608物理信号物理层功能时钟恢复:对于高频传输,一般是采用差分信号传输,并且没有单独的时钟,时钟存在于编码内部串并转换:对于高频传输,串联信号可以做到更高的频率。字节对其:8/10编码转换的10bit对其链路层、传输层链路层和传输......