C 入门【六】

本文探讨了模块化编程的概念,通过具体实例如打印乘法表、判断年份和数组操作,展示了如何将复杂功能分解为独立模块,提高代码的可读性和可维护性。

题记 今天的内容更像是一种思想上的启发。开篇立意——模块化思想。个人认为在Java中体现的淋漓尽致,个人认为就像是将一个或者一组项目中的功能程序(或者功能函数),进行模块化(写在程序Main之外 需要时进行调用 流水线)然后组装成需要的程序。一个模块一个内容。

之前的 打印乘法表 可以人为控制

需求分析: 一个程序可以按照要求打印出所需要的乘法表可以控制
过程分析:
1.创建一个函数这个函数可以打印乘法表
2.函数内部变量两个 行和列 外部传入实参为 乘法表的行数
3.行数递增变化与列数相同
代码展示:

int Mult(int num){
  /*
  	思路 确定变量 在乘法表中两个变量 行 和 列
  	可控制的量为  行 ,行影响列
  	利用 两个  for 第一个for 循环行 第二个for循环列
  */
  int Line=0;
  int Colu=0;
  for (Line = 1; Line<= num; Line++){
  	for (Colu = 1; Colu <=Line; Colu++){
  		printf("%d*%d=%d ",Line,Colu,(Line*Colu));
  	}
  	printf("\n");
  }

}
int main(){
  int num;
  printf("请输入参数:\n");
  scanf("%d", &num);
  Mult(num);

  system("pause");
  return 0;
}

总结: 代码实际分为两个模块 main 和 Mult 部分 主要功能在函数内部执行
补充一类似程序 判断年份

int Judg(int year){
	if ((year%4==0)&&(year%100==0)||(year%100==0)){
		return 1;
	}
	return 0;
}
int main(){
	int year;
	printf("输入一个年份:");
	scanf("%d",&year);
	if (Judg(year)){
		printf("是");
	}
	else{
		printf("否");
	}
	system("pause");
	return 0;
}

总结:判断年份程序有两个模块组成 Judg与 main 在Judg中实现对年份的判断 最后返回判断结果

数组的需求

需求分析:
1.实现函数init()初始化数组、
2.实现empty()清空数组、
3.实现reverse()函数完成数组元素的逆置。
过程分析:
1.实现数组初始化传入一个待定数组 、调用在函数体内部
2.实现清空数组 传入一个待定数组 在调用函数体内部完成清空
3传入待定数组 调用函数完成逆置
代码展示:

#define _CRT_SECURE_NO_WARNINGS 1
#include "stdio.h"
#include "stdlib.h"
int init(int arr[], int len){
   int i = 0;
   for (i = 1; i <= len; i++){
   	printf("赋初值:");
   	scanf("%d", &arr[i]);
   }
}
int empty(int arr[], int len){
   int i = 0;
   for (i = 1; i <= len; i++){
   	arr[i] = 0;
   }
}
int reverse(int arr[], int len){
   int i = 0;
   for (len - 1; len > 0; len--){
   	printf("逆置数组");
   	scanf("%d", &arr[i]);
   }
}
int menu(){
   printf("/////  选择操作     /////\n");
   printf("///// 1.初始化数组  /////\n ");
   printf("///// 2.清空数组    /////\n");
   printf("///// 3.逆置数组    /////\n");
}
int main(){
   int len;
   int arr[100];

   int input;
   printf("指定数组长度");
   scanf("%d", &len);
   menu();
   scanf("%d", &input);
   switch (input){
   case 1:
   	init(arr, len);
   	break;
   case 2:
   	empty(arr, len);
   	break;
   case 3:
   	reverse(arr, len);
   	break;
   default:
   	break;
   }



   printf("%d", arr[4]);
   system("pause");
   return 0;
}

总结:该程序我个人在主函数使用 switch 将需求的功能函数通过菜单展示,由用户选择进入所需功能每个函数传入参数 为 待定数组与数组长度 数组长度由用户指定
不足:初始化数组函数没有真正的进行 初始化 实际上 还是将C初始化好的数组传入 没有真正意义上个的调用函数在函数内部初始化然后返回。
···
···生命不息奋斗不止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值