C语言函函数嵌套

一、实验作业

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 调试碰到问题及解决办法。

  • 对于变量Count,没有用extern进行全局定义,造成的错误.

二、截图本周题目集的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数组的题目也难度很大,做不出来很难受.期末马上就要来了,要复习的内容很多,感觉力不从心.希望自己保持好
    的心态,认真复习,迎接即将到来的期末考.
posted @ 2018-01-01 20:36  ljy1139  阅读(812)  评论(2编辑  收藏  举报