C语言I作业08

一、本周作业头##

这个作业属于那个课程|C语言程序设计II
--|:--😐:--
这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9935
我在这个课程的目标是|熟练掌握好C语言,培养自己的思维能力,同时加快敲代码速度。
这个作业在那个具体方面帮助我实现目标|帮助我熟练的掌握switch语句以及排版能力
参考文献|百度百科、CSDN博客、C语言程序设计

二、本周作业##

1.PTA实验作业####

1.1 jmu-c-二进制转10进制

输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出 error input!
输入样例1:
11111111
输出样例1:
255
输入样例2:
34
输出样例2:
error input!

1.1.1数据处理####

数据表达:使用了char op[50],i,sum=0,flag=1;其中char op[50]表示字符型数组取50,i=0表示循环起点,sum表示二进制转化为十进制的值,flag用来判断是不是二进制。
数据处理:

#include<stdio.h>
#include<string.h>
#include<math.h>
int main ()
{
    char op[50];
    int i,sum=0,flag=1;
    输入op
    for(i=0;i<op里的数的个数;i++){
        if(数组i不是二进制){
            flag=0;
            跳出循环
}
            sum+=pow(2,op里的数的个数-i-1)*(op[i]-'0');
	}
	if(flag){
		输出二进制转十进制的值
	}
	else{
		输出error input!
            }
}

1.1.2实验代码截图#####

1.1.3 造测试数据####

输入数据|输出数据|说明
--|:--😐:--😐:--
op=11111111|sum=255|op=11111111属于二进制
op=34|sum=error input!|op=34不属于二进制
op=111101|sum=61|op=111101属于二进制

1.1.4 PTA提交列表及说明####

编译错误少打了个大括号
答案错误:改的时候没有定义自己用的变量
答案错误:在求二进制转十进制的值是表达式 score=n%10; sum=sum+score*pow(2,count); n=n/10; count++;中n=n/10与score=n%10倒了过来
部分正确:使用整型变量,达不到输出要求
部分正确:通过寻求学长帮忙使用字符型变量,开始令flag=0导致一直输出error input!
部分正确:开始令i=1导致部分正确

1.2 求整数的位数及各位数字之和####

对于给定的正整数N,求它的位数及其各位数字之和。

输入格式####

输入在一行中给出一个不超过10九次方的正整数

输出格式####

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

输入样例:####

321

输出样例####

3 6

1.2.1数据处理####

span style="color:red">数据表达用了N,count,sum=0;其中N代表输入的正整数,count表示整数的位数,sum表示整数的各位数之和。
span style="color:red">数据处理

#include<stdio.h>
int main ()
{
    int N,count,sum=0;
    输入正整数N;
    while(当N不等于0时)
    {
        sum=sum+N的最后一位数;
        N=N/10;
        位数加一;
        输出sum和输出count;
        return 0;
}

1.2.2实验代码截图#####

1.2.3 造测试数据####

输入数据|输出数据|说明
--|:--😐:--😐:--
N=321|count=3,sum=6|321有三位数,各位数之和为6.
N=0|count=0,sum=0|0不是正整数
N=-2|count=1,sum=-2|-2不是正整数,但是是整数故各位数为1,各位数之和为-2

1.2.4 PTA提交列表及说明####


答案错误:输出值写在while语句里,但依旧答案错误。
答案错误:sum赋值零后运行超时
运行超时:N除以10后取余,并计数count,应是N/10后计数count。
运行超时:N除以10后取余,并计数count,应是N/10后计数count。
运行超时:scanf("%d",&N)此语句中没有用地址符也就是&。
多种错误:while语句中N!=0写成N<0000000.
多种错误:输出的时候count与sum的输出顺序错误。
多种错误:修改过程中count少打了个n.

2.代码互评###

自己代码|同学代码
--|:--😐:--
|

不同点:####

1.我使用的while语句而这位同学使用的是for循环
2.在if语句中我做的稍微比他的要简便些

自己代码|同学代码
--|:--😐:--
|

不同点:####

1.该同学与我的代码区别在于我用for循环解决的,而该同学使用switch语句与while语句
2.我的代码是通过请教学长,学长应用后面所学的知识进行的求解的,使用到了#include<string.h>这个头文件,以及gets字符输入函数,strlen函数
3.在计算sum时,我调用了平方函数,从最大的开始算,而该同学是从最小开始算的。

3.学习总结###

3.1 学习进度条

周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
--|:--😐:--😐:--
10/8-10/12|5h|224|if-else语句和输入输出格式|变量的处理
10/13-10/18|12h|263|for循环语句,如何计算累加题|不知道什么时候用include<math.h>
10/19-10/26|15h|334|如何编写自定义函数及更加熟练掌握for循环|自定义函数的使用
10/26-11/2|14h|355|如何使用逻辑表达式及else-if语句|如何去寻找else-if之间的关系
11/2-11/8|13h|284|如何使用switch语句|switch语句与for循环同用时的关系
11/9-11/15|16h|231使用while语句以及字符型变量的输入输出,#include<string.h>的使用|数组的使用

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会
在这一周的学习过程中,学了很多的东西;但没有实际的应用到题目上来,因为周四的羽毛球比赛,上午的课也没有上,一整天都在体育馆当工作人员。
导致都没有时间写PTA,第五题的那个挑战题也没来得及看。特别是第三题就已经把我难倒了。我开始使用整型,千辛万苦终于把代码写对了;但应该是
溢出了,整型没有达到题目所要的范围。只能用字符型,我就请教了一位学长,学长教我用字符型;同时让我接触到了另一个新的头文件#include<string.h>
并且耐心的替我讲解他那段代码的意思。但我还是有的似懂非懂,也让我感受到了这C语言还是要靠自己去主动去学习,一定要走到老师的前面。

posted @ 2019-11-14 00:26  曾子豪  阅读(216)  评论(0编辑  收藏  举报