C語言博客作業--函數嵌套調用


一、實驗作業

1.1 6-4 十進制轉換二進制

  • 設計思路
如果n=1或n=0 輸出n
否則{
	把n/2作為參數傳入函數
	最后遞歸回去輸出n%2的值
} 
  • 代碼截圖
  • 調試問題

    一開始我只把0當成特殊數,然后發現如果最后的n/2是1的話遞歸回去還會出現一個0

    所以我把1和0都當成臨界值發現一個1變成0了,要把輸出部分改成輸出n的值

1.2 學生成績管理系統

1.2.1 畫函數模塊圖,簡要介紹函數功能

1.2.2 截圖展示你的工程文件

1.2.3 函數代碼部分截圖

  • 本系統代碼總行數:256
  • 1.2.4 調試結果展示

    新增人數過多,重新輸入

二、截圖本周題目集的PTA最后排名

三、閱讀代碼

/* 遞歸實現順序輸出整數*/ 
#include <stdio.h>
void printdigits( int n );
int main()
{
    int n;
    scanf("%d", &n);
    printdigits(n);
    return 0;
}
void printdigits( int n ){
	if(n>=0&&n<=9) printf("%d\n",n); // 最后一位直接輸出 
	else{
		printdigits(n/10);   // 和十進制轉二進制類似,先讓n/10作為參數調用函數 
		printf("%d\n",n%10);   //最后遞歸回來剛剛好是順序排列 
	}
}
  • 該代碼實現了順序輸出整數,一開始我想的是類似以前做個的順序輸出整數,讓先求余再除以10,然后發現只能逆序輸出,而該代碼讓n/2作為參數一直調用直到n在0~9之間,由於遞歸的機制讓原本逆序變成順序輸出
  • 而且代碼量少,言簡意駭

四、本周學習總結

本周主要是學習大程序結構

  • 其目的是為了防止代碼太長從而把它分成多個函數
  • 1個.c文件就是一個編譯單元,編譯器每次編譯只處理一個編譯單元
  • 所以要建項目,把多個源代碼加進去,編譯器就會把所有源代碼文件都編譯后鏈接起來
  • 把函數原型放在一個頭文件(.h結尾)中在需要調用這個函數的源代碼文件中,就能夠讓編譯器編譯時直到函數原型
  • <>時讓編譯器到指定目錄下去找文件,而“”要求編譯器首先在當前目錄尋找文件,如果沒有,到指定目錄下去找文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM