1. 程式人生 > >C 入門【六】

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初始化好的陣列傳入 沒有真正意義上個的呼叫函式在函式內部初始化然後返回。
···
···生命不息奮鬥不止