#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; }
双击表格可删除表格