C语言I作业08
一、表格
问题 | 答案 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9976 |
我在这个课程的目标是 | 学习好C语言,熟练掌握编译代码的相关技巧,掌握C语言的精髓 |
这个作业在那个具体方面帮助我实现目标 | 学会使用while和do-while结构解决问题 |
参考文献 | 百度,C语言程序设计,《C Primer Plus》 |
二、本周作业
1.PTA实验作业
1.1 题目名1 求整数的位数及各位数字之和
题目内容:
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10^9的正整数N
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1数据处理
数据表达:定义变量count,number,sum;并且把它们都定义为整型变量,开始的时候 count=0;sum=0。
数据处理:运用了while语句,当number!=0的时候进行sum,number,count的运算。
伪代码:#include<stdio.h>
int main (void)
{
定义整型变量 count,number,sum;
count=0;(进行赋值)
sum=0;
输入number的值;
while (number不等于零)(while语句进行循环)
{
sum=sum+number%10;(用公式进行计算)
number=number/10;
count=count+1;
}
printf(输出count,sum的值);
程序结束;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
321 | 3 6 | 验证题目所给的数据 |
10001 | 5 2 | 输入较大的数据进行验证 |
11 | 2 2 | 验证较小数据 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.部分正确:将 while (number>0)改为 while (number!=0),将循环体语句修改为sum=sum+number%10;number=number/10;count=count+1;
2.答案正确:。。。
说明:在Devc++上实验了很久才发现了原来是自己的循环体出了错误,然后根据提示进行了修改。
1.2 题目2 jmu-c-二进制转10进制
题目内容:
输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
输入样例1:
11111111
输出样例1:
255
输入样例2:
34
输出样例2:
error input!
1.2.1 数据处理
数据表达:定义变量sum,并且定义为整型;定义字符型变量char op;开始的时候sum=0。
数据处理:开始的时候先运用while语句进行循环接着再运用if-else语句进行结果的计算。
伪代码:#include<stdio.h>
int main (void)
{
定义整型变量sum=0;
定义字符型变量char op;
输入op;
while(判断输入是否是 回车,不是就进入循环)
{
if(op=='\n')
break;(如果输入是 回车,就跳出)
if(op!='0'&&op!='1')(判断输入的是否是二进制数)
{
printf("error input!");
return 0;
}
else(输入的数是二进制数)
{
sum=sum*2+op-'0'; (用公式进行计算)
}
输入字符;
}
输出十进制sum的值;
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
11111111 | 255 | 验证题目所给数据1 |
34 | error input! | 验证题目所给数据2 |
11 | 3 | 随机验证一组数据 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.部分正确:在 printf("error input!");后面增添上语句 return 0;把printf("%d",sum);放到最后一个return 0上面。
2.答案正确:。。。
2.代码互评
同学代码一:
自己代码一:
代码比较:
1.我与同学定义的变量有点不一样,我比她多定义了一个变量h是为了算高度。
2.我们俩个的算的思路有一点不一样,同学的是用n去减去爬的高度,而我用的是爬的高度与输入n进行比较,所以算的过程有点不一样。
同学代码二:
自己代码二:
代码比较:
1.刚看到同学的代码的时候感觉到很震惊,跟他相比感觉自己跟别人的差距有点大啊,他运用了好多知识点。
2.他运用了字符型,switch语句,还运用了while的语句,可以看出来同学很好的把最近所学的东西都联系起来了,而我运用了字符型,while语句以及if-else语句,相对同学来说没有那么高级。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周(9.19-3.27) | 四天 | 40 | Hello world编程和Markdown语法 | 对待大部分内容都不理解 |
第二周(9.25-10.4) | 四天 | 35 | 华氏度与摄氏度的转换 | 不理解数据类型 |
第三周(10.8-10.11) | 三天 | 90 | if-else语句、格式化输入语句 | 分不清整型变量和浮点型变量 |
第四周(10.15-10.17) | 三天 | 100 | 有关for循环体的运用 | 有时候不清楚循环体是什么 |
第五周(10.22-10.25) | 三天 | 130 | 使用自定义函数来编程和生成乘方表和阶乘表 | 不知道如何调试函数以及在哪里设置断点 |
第六周(10.30-11.2) | 四天 | 180 | 分支结构、字符型数据类型 | 对待字符型题目还是不能够准确理解 |
第七周(11.06-11.08) | 三天 | 190 | 学会多分支结构switch语句的使用 | 有时不能准确理解case后的有些语句 |
第八周(11.13-11.15) | 三天 | 200 | 学会使用while和do-while结构解决问题 | 不能准确判断while的循环条件 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.这一周我们学习了while语句以及do-while语句的运用,以及在使用while语句的注意事项,和for语句的比较。
2.while语句的表达式为:while(表达式) 循环体语句; do-while语句的表达式为"do{" "循环体语句" "}while(表达式);"
3.在写作业时有时不能准确判断while语句中表达式的判断条件,有时会判断错误。