zoukankan      html  css  js  c++  java
  • C语言I博客作业08

    这个作业属于那个课程
    这个作业要求在哪里
    我在这个课程的目标是
    这个作业在那个具体方面帮助我实现目标
    参考文献

    1.PTA实验作业

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

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

    11111111
    

    输出样例1:

    255
    

    输入样例2:

    34
    

    输出样例2:

    error input!
    

    1.1.1数据处理

    数据表达:定义整型变量n, i, sum, b, c,定义数组a,n用于输入数组a的下标,i用于for循环,sum算十进制的数,b用于判断输不输出十进制数,c为计算十进制数数组a的下标。
    数据处理

    定义整型变量n, i, sum, b, c,定义数组a,n用于输入数组a的下标,i用于for循环,sum算十进制的数,b用于判断输不输出十进制数,c为计算十进制数数组a的下标。
    
    	do
    	{
    		n累加1;
    		输入个字符赋值给数组a[n];
    	} while (a[n] != '
    ');
                    end while;
     	n赋值给c;
    	for i = 0 to n
    	
    		c累减1;
    		if a[c] == '1'
    			sum累加求十进制数;
    		else if a[c] == '0'
                           跳到下次循环;
    		else
    			输出error input!;
    			把0赋值给b;
    			跳出循环;
    	end for
    	if b == 1
                     输出sum十进制数;
    	
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    11111111 255 二进制11111111转换成十进制为255
    34 error input! 34不是二进制
    101010 42 101010转成十进制为42

    1.1.4 PTA提交列表及说明


    提交列表说明:
    部分正确1:我定义输入的二进制为整数型,然后数据爆了,后面改用字符型输入。
    部分正确2:for循环结束条件错了,多了个等于,把等于去了就对了。

    1.2 整除光棍

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

    提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

    输入格式:

    输入在一行中给出一个不以5结尾的正奇数x(<1000)。
    

    输出格式:

    在一行中输出相应的最小的s和n,其间以1个空格分隔。
    

    输入样例:

    31
    

    输出样例:

    3584229390681 15
    

    1.2.1数据处理

    数据表达:定义整型变量x,s,n,x为输入的数,s用于算光棍数除以x的,n用于计算光棍的位数。
    数据处理

    定义整型变量x,s,n,x为输入的数,s用于算光棍数除以x的值,n用于计算光棍的位数。
    	
    	输入x;
    	while (s < x) 
    		在s后面加1;
    		n累加1;
    	end while
    	while (1) 
    		输出s除以x的整型数;    //这使用的笔算的方式,输出除以x得的整数,然后在余数后面加1在进行计算
    		把s除以x的余数赋值给s;
    		if s == 0
                    {
                    跳出循环;
                    }
    		在s后面加1;
    		n累加;
    	end while
    	输出n,光棍的位数;
    
    
    
    

    1.2.2实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    31 3584229390681 15 所得的光棍数除以31为3584229390681且光棍的个数为15
    9 12345679 9 所得的光棍数除以9为12345679且光棍的个数为9

    1.2.4 PTA提交列表及说明

    提交列表说明:
    部分正确:我用的长整型后面加1,算到后面数据就爆了,后面百度,发现他们写这题是靠笔算的方法写出来的,取余数后在后面加1。

    1.3爬动的蠕虫

    一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?

    这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

    输入格式:

    输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
    

    输出格式:

    在一行中输出蠕虫爬出井的时间,以分钟为单位。
    

    输入样例:

    12 3 1
    

    输出样例:

    11
    

    1.3.1数据处理

    数据表达:定义整型变量N, U, D, minute, sum,N为井深,U为向上爬1分钟的长度,D为休息1分钟下滑的长度,minute为蠕虫爬出来的时间,sum为蠕虫爬的长度。
    数据处理

    定义整型变量N, U, D, minute, sum,N为井深,U为向上爬1分钟的长度,D为休息1分钟下滑的长度,minute为蠕虫爬出来的时间,sum为蠕虫爬的长度。
    
    	输入井深,向上爬1分钟的长度,休息1分钟下滑的长度;
    
    	do
    	{
    		sum累加U;
    		minute累加1;
    		if sum < N
    		{
    			sum累减D;
    			minute累加1;
    		}
    	} while (sum < N);
    	输出爬出洞所用的时间;
    
    

    1.3.2实验代码截图

    1.3.3 造测试数据

    输入数据 输出数据 说明
    12 3 1 11 爬出12寸深的洞要11分钟
    2 5 2 1 爬出2寸深的洞要1分钟

    1.3.4 PTA提交列表及说明

    提交列表说明:
    部分正确:while的结束条件多了个等于,把等于去掉就行了。

    2.代码互评

    同学代码截图

    自己代码截图

    1.他的代码跟我的代码计算二进制转十进制的算法不一样,他是累成2再加1或0,我是用下标算法。
    2.他是每输入一个字符处理一个字符,我是把字符都存下来了。
    3.他的代码应该报错的,sum没有赋值,不知道为啥对了,pta这个运行环境还是有点不好啊,这串代码有问题都对了。
    

    同学代码截图

    自己代码截图

    1.我们代码计算s的方法都一样的,用光棍数除以输入的数取整输出,再余数加1,继续除以输入的数取整输出。
    2.我是先用一个while把光棍数加到大于输入的数,再进行取整输出,他的代码是一个while里面用if进行判断。
    

    同学代码截图

    自己代码截图

    1.我们代码算时间的方法都是一样的
    2.不同之处在于,我用的是do-while,他用的是while,我有结束条件,他是通过if判断然后跳出循环。
    

    3.学习总结

    3.1 学习进度条

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    这周学习了while,do-while语句,是循环的一种语句,主要用于没有给定循环次数的循环。
    现在做题目都需要逻辑思维,我看了别的刷题网站,入门题目就要用到冒泡排序,能够想到到后面会有多难,我发现到后面就真的是在做数学题,有思路,会怎么去解决这个问题就能写出来。

    while语句的一般形式为:
        while(表达式) 语句
    其中表达式是循环条件,语句为循环体。
    
    do-while语句的一般形式为:
        do
            语句
        while(表达式);
    
  • 相关阅读:
    必须为接口 System.Collections.IComparer 实现
    C#编写的windows程序随系统启动的问题
    ReportViewer导出Excel的问题
    英语听力的技巧
    Windows中无法删除文件的解决办法
    RDLC/RDL 动态报表
    Only export to PDF format from ReportViewer addin
    提高ASP.Net网站性能
    关于Spring 国际化 No message found under code 的解决方案
    Axis2中使用WSAddressing协议
  • 原文地址:https://www.cnblogs.com/laotun/p/11852455.html
Copyright © 2011-2022 走看看