本周作业头
| 问题 | 答案 |
|---|---|
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | C语言I作业08 |
| 我在这个课程的目标是 | 熟练使用C语言编程,掌握编程基本工具以及一些办公软件 |
| 这个作业在那个具体方面帮助我实现目标 | 学习了循环结构中的while和do...while语句,并能运用解题 |
| 参考文献 | 百度,《C语言程序设计》 |
1.PTA实验作业

1.1题目1

1.1.1数据处理
#include<stdio.h>
int main()
{
定义result存放十进制数;
定义字符op;
判断是否能循环while(op!='\n'){
输入字符op;
if(按下回车){
跳出循环;
}
if(当输入非法字符时出错){
x为非二进制字符;
跳出循环;
}
else{
result=result*2+op-'0';//(循环体)二进制转十进制公式
}
if(输入非二进制数){
输出error input!;
}
else{
输出结果result;
}
return 0;
}
1.1.2实验代码截图

1.1.3造数据测试
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 11111111 | 255 | 题目样例 |
| 34 | error input! | 题目样例 |
| -123 | error input! | 负数 |
1.1.4PTA提交列表及说明

1.编译错误:27行误写成'printf("%d",result;)'应将;放到括号后面。
2.答案错误:8行误写成' if(op='\n')'。应改为==。
1.2题目2

1.2.1数据处理
#include<stdio.h>
int main()
定义除数x,被除数s,位数n,并全部赋值为0;
输入除数x;
(s < x)//避免输出0
{
s = s * 10 + 1;
n++;//s<x时,位数+1,循环
}
while (1)//无限循环
{
输出s/x;//即输出商,并取整
s %= x;//s变为余数
if (余数为0)
跳出循环;
s = s * 10 + 1;
n++;
}
输出位数n;//即光棍个数
return 0;
}
1.2.2实验代码截图

1.2.3造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 31 | 3584229390681 15 | 题目样例 |
| 12 | 无法显示一个准确的数 | 不是奇数 |
| 21 | 5291 6 | 奇数 |
1.2.4PTA提交列表及说明

1.部分正确:误将8行和16行写成's = s * 1 + 1;应改为's = s * 10 + 1;'
2.编译错误:16行的 's = s * 10 + 1'后未加分号。
注:这道题在vs反复实验了多次,大部分错误都为部分正确,思路也不清晰,后看了同学的代码,有所启发,才能做出这道题。
2.代码互评
2.1.1同学代码截图

2.1.2自己代码截图

不同点
1.该同学定义了四个变量,而我只用了三个变量。
2.该同学使用的是do...while语句,而我使用的是while语句。
3.总体来看,我的代码比较简洁,而该同学的思路逻辑比较清晰。
2.2.1同学代码截图

2.2.2自己代码截图

不同点
1.该同学在while语句中很好的使用了switch语句,而我则是运用了多个if-else语句。
2.从结构上来看,该同学的代码简洁明了,并且对switch的使用很熟练,而我并不能很熟练的运用。
3.总体看来,这道题这位同学比我做得更好,很好地掌握并使用了之前的知识。
3.学习总结
3.1学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 9/16-9/22 | 4小时 | 40 | hello world | 无 |
| 9/23-9/29 | 6小时 | 50 | 变量定义 | 无 |
| 10/8-10/12 | 8小时 | 150 | 二分支结构以及if-else语句 | 数学函数的运用 |
| 10/14-10/18 | 16小时 | 260 | 循环结构以及for语句 | 调试程序 |
| 10/21-10/26 | 30小时 | 450 | 定义函数 | 函数的调用 |
| 10/28-11/2 | 12小时 | 360 | 分支结构,字符型数据,逻辑表达式 | 逻辑表达式 |
| 11/4-11/8 | 12小时 | 364 | switch和break语句的使用 | 伪代码 |
| 11/11-11/15 | 12小时 | 324 | while和do...while的区别和使用 | switch的运用 |
3.2累积代码行和博客字数

3.3学习内容总结及感悟
3.3.1学习内容总结

3.3.2学习体会
1.首先作业越来越难,这是肯定的,因为我们学的越多,作业涉及到的内容就多。
2.同学之间开始有了差距,有些同学已经能熟练运用前面的知识,而我并不能熟练使用,并且对后面的内容也学的不深。
3.作业做的越来越谨慎,每次先要用VS测试,基本确定才敢写到PTA上,对于伪代码的书写还要更进一步学习,感觉这次自己写的有些粗糙。
4.接下来要多多复习并总结前面的内容,适当做一些扩展,以防学到后面,反倒把前面的内容给遗忘了。