动态 版块 发帖 消息 我的
Loading...
小绿叶技术博客
小绿叶技术博客
小绿叶技术Lv149   
指针函数与指针回调回访 判断与多重匹配 switch-c语言     


#include <stdlib.h>
#include <stdio.h>


//----------- 数组接收元素 -----------
int shuzu(){
    int sz[31];
// 实际有 31 个元素

    for(int i=0; i<=30; i=i+5){
        int number= rand() %6+1;
// 定义变量值为 rand 随机数:范围:从1 到 6 ,但不包含 7=6+1  。循环 的步长为 5 

        sz[i] = number;
// 接收数组元素

        printf(" %d\n", sz[i]);
    }

    printf("数组第 1 个元素是: %d\n;  数组sz 的元素个数为:\n \n ", sz[0]);
    return 0;
}


//---------------  函数调用传值 ------------------

int czjs(void){
    int a=10000;

    for(int b=30; b<=40; b++){

    zz(a,b);   
// 函数调用并传值给它,让函数自己运算
    }
}

int zz(int a, int b){
// 定义函数方法,调用我需要传值 a 和 b
    int c=(a + b) * a;
    printf("c 的值: %d\n",c );

    return 0;
}

// ---------------- 判断中的多重匹配 switch --------------------#
/*
定义函数,变量为int 类型 year month ex
scanf 键盘交互,
if 判断 月 小于1 或者 大于12 则满足条件输入有误

% 除以 4 余数为0

switch 对变量 month 进行 case 多重匹配

*/

#include<stdio.h>

int switchif() {
    int year, month, ex;

    printf("请输入年份及月份(空格分隔):");
    scanf("%d %d", &year, &month);

    if(month < 1 || month > 12) {
        printf("输入有误!!");
    } else {
        if((year%4 == 0 && year%100 != 0) || year%400 == 0) {
            ex = 1;
            printf("%d年为闰年。\n", year);

        } else {
            ex = 0;
            printf("%d年不为闰年。\n", year);
        }

        switch(month) {
            case 4: case 6: case 9: case 11: printf("%d月有%d天。", month, 30); break;
            case 2: printf("%d月有%d天。", month, 27+ex); break;
            default: printf("%d月有%d天。", month, 31);
        }
    }
}



//------------------ 指针 与回调函数 ----------------------
/*
1. 定义 huidiao 回调函数:指针变量  *a *c , 和其他类型 size_t ; 定义循环 初始为0,小于main 传来的 10
2. 数组 定义数组 a 由于循环打印赋值,c 为一个  sjs 随机数函  范围 1111到 1111+6666之间的范围。 c 赋值为函数。
3. main 函数 先从 回调函数传值定义规则,得到数组的元素值。然后for 循环打印数组元素 

*/


void huidiao(int *a, size_t b, int (*c)(void)){
    for ( size_t i=0; i<b; i++ )
        a[i] = c();
}

int sjs(void){
    return rand() %6666+1111;
}


int main(viod){
    int mya[10];
    huidiao(mya, 10, sjs);
// 得到数组的元素值

    for(int i=0; i<10; i++){
        printf(" %d\n", mya[i] );
    }

    printf("\n  指针回调结束。执行之前的函数 \n" );

    shuzu();
    czjs();
    switchif();
    return 0;
}







 1  已被阅读了120次  楼主 2022-06-30 15:13:03
回复列表

回复: 指针函数与指针回调回访 判断与多重匹配 switch-c语言

guest
登录之后更精彩~
Powered by HadSky 7.7.16
© 2015-2022 PuYueTian
您的IP:8.219.134.200,2022-08-10 07:30:09,Processed in 0.01372 second(s).
Powered by HadSky
小绿叶技术博客