1. 程式人生 > >C語言函函數嵌套

C語言函函數嵌套

-m log 作業 部分 動態 展示 到來 題目 names

一、實驗作業

1.1 PTA題目

設計思路

1.定義整形變量i,if(b==n-1)用於遞歸的終止,並返回1.
2.for i=b to n ,if(a[i]<a[min]);進行升序排序
3.sort(a,n)遞歸.

代碼截圖

技術分享圖片

調試問題

  • 沒有

    1.2 學生成績管理系統

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

    技術分享圖片

    1.2.2 截圖展示你的工程文件

    技術分享圖片

    1.2.3 函數代碼部分截圖

    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片

    1.2.4 調試結果展示

  • 還沒有做完,後續補充.

    1.2.5 調試碰到問題及解決辦法。

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

    技術分享圖片

    三、閱讀代碼

    ```

    include <bits/stdc++.h>

using namespace std;

int n, tp, cnt;
int ans[14][14];

void Ans(int m);

int main()
{
int T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
tp = 0, cnt = 0;
Ans(n);
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
printf("%d%c", ans[i][j], j == n-1? ‘\n‘: ‘\t‘);
}
}
if(T != 0)
printf("\n");
}
return 0;
}
void Ans(int m)
{
int i, j;
if(m <= 0)
return;
else
{
i = tp;
for(j = tp; j < tp+m; j++)
ans[i][j] = ++cnt;

    j = tp+m-1;
    for(i = tp+1; i < tp+m; i++)
        ans[i][j] = ++cnt;

    i = tp+m-1;
    for(j = tp+m-2; j >= tp; j--)
        ans[i][j] = ++cnt;

    j = tp;
    for(i = tp+m-2; i > tp; i--)
        ans[i][j] = ++cnt;

    tp++;
    Ans(m-2);
}

}
```

  • 這套題是pta數組的螺旋方陣的題目,不過用的是遞歸的方法通過臨界條件以正方形由遠到近層層遍歷來輸出螺旋方陣,看的不是很懂,用遞歸方法確實很新穎.

    四、本周學習總結

    1.介紹本周學習內容

  • 1.二維指針
  • 2.二維數組中指針的等價關系
  • 3.通過函數的嵌套將各程序文件模塊連在一起,構成一個大模塊.
  • 4.malloc()函數可以動態分配相應大小的內存單元,采用動態分配內存的方法處理多個字符串,避免內存的浪費,最後要用free釋放內存
  • 5.宏#define,可以定義字符串等,類似函數.

    2.學習體會。

  • 學業壓力挺大的,平時上課講的內容沒有完全弄懂.,尤其是這周學的malloc()函數和宏,還有學生信息管理系統,真的一頭霧水.
    另外之前的pta數組的題目也難度很大,做不出來很難受.期末馬上就要來了,要復習的內容很多,感覺力不從心.希望自己保持好
    的心態,認真復習,迎接即將到來的期末考.

C語言函函數嵌套