C 入門【六】
阿新 • • 發佈:2019-01-06
題記 今天的內容更像是一種思想上的啟發。開篇立意——模組化思想。個人認為在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初始化好的陣列傳入 沒有真正意義上個的呼叫函式在函式內部初始化然後返回。
···
···生命不息奮鬥不止