C语言博客作业--函数嵌套调用

一、实验作业

PTA题目:6-4 十进制转换二进制

1.本题PTA提交列表

2. 设计思路

设置一个flag判断是否输入的数是单独为0的情况
如果不是:且n不为0 ,每次n/2, 输出n%2

3.代码截图

4.调试过程碰到的问题及解决办法

部分正确:没有考虑到输入的数为0的情况
后面单独讨论就好。

二、学生成绩管理系统

1.2.1 画函数模块图,简要介绍函数功能。

1.2.2 截图展示你的工程文件

1.2.3 函数代码部分截图

头文件

主函数

增加学生

修改成绩

删除学生

按学号排序

1.2.4 调试结果展示

工程能完成基本的功能,但是只能用于正确的输入,后续会继续完善。

三、截图本周题目集的PTA最后排名

四、阅读代码

字符串串动变化
下列程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将该字符前的所有字符向后顺序移动一个位置,然后将该字符放到第一个位置上。

#include <stdio.h> 
  fun(char *p)  
  {  
     char max,*q; int i=0;  
     max=p[i];  
     while(p[i]!='\0')  
     {  
         if(max<=p[i])  
         {  
             max=p[i];  
             q=p+i;  
         }  
         i++;  
     }  
     while(q>p)  
     {  
         *q=*(q-1);  
         q--;  
     }  
     p[0]=max;  
  }  
  main()   
  {  
     char str[80];  
     printf("Enter a string: ");  
     gets(str);  
     printf("\nThe original string:   ");  
     puts(str);  
     fun(str);  
     printf("\nThe string after moving:  ");  
     puts(str);  
     printf("\n\n");  
  }  

这题是pta上的一题,我虽然做出来但是做法较为复杂,特别是在找到Ascll值最大的字母后的重新排序,做法复杂且效率低。
这个代码只用了一个循环就完成了。记录到最大值的那个字母,从那开始字母循环往后移动一个位置。效率很高而且代码也
很简洁。

五、本周学习总结

1.介绍本周学习内容

  • 宏定义
    宏定义又称为宏代换、宏替换,简称"宏"。
    格式:
    "#define 标识符 字符串"
    其中的标识符就是所谓的符号常量,也称为"宏名"。
    如#define Pi 3.1415926
    把程序中出现的Pi全部换成3.1415926
  • 指针指向指针
    也称二级指针
    如:
    int a=10;
    int *p=&a;
    int **pp=&p;

2.学习体会

  • 这周的作业有些不大一样,是建一个工程。之前都是固定的一道题目完成相应的功能代码都是一页的。
    建工程分成多页,还要串起来完成多个功能。刚起步确实碰到很多的困难,主要是链接的问题。其实满足相应的功能的代码都不是特别难写。确实还是要多花时间去琢磨。
posted @ 2018-01-01 20:45  圣多美  阅读(335)  评论(3编辑  收藏  举报