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.学习体会
- 这周的作业有些不大一样,是建一个工程。之前都是固定的一道题目完成相应的功能代码都是一页的。
建工程分成多页,还要串起来完成多个功能。刚起步确实碰到很多的困难,主要是链接的问题。其实满足相应的功能的代码都不是特别难写。确实还是要多花时间去琢磨。