zoukankan      html  css  js  c++  java
  • C语言博客作业数组

    1.本章学习总结

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    1.学习了数组的基本使用方法,刷了三个数组题集,感觉数组题的的解题需要更加清晰的解题思路,要清楚的知道数组在代码各个阶段的状态,这就需要对数组有一定的理解了。
    2.刷完题集发现自己在题意理解上经常会走偏,导致明明感觉代码没什么问题却过不了,不过和同学代码对比后一般都可以发现问题。
    

    1.2.2 代码累计

    2.PTA总分

    2.1截图PTA中顺序结构、分支结构的排名得分



    2.2 我的总分:455分

    3.PTA实验作业

    3.1 PTA题目1

    • 天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。

    3.1.1 算法分析

    定义整型变量 N,hour,mi,ret,count;
    定义字符型变量 ch;
    定义浮点型变量 sum; 
    输入 N; 
    while(N>=1)
    {
    count=0;               //归零 
    sum=0;                 //归零 
    int a[1001]={0};       //书号 
    int time1[1001]={0};   //开始时间 
    int time2[1001]={0};   //结束时间 
    	输入 ret ch hour mi
      while ret!=0 do           //等于0结束
      {
    	if  ch 等于 S    then 
    		{
    			a[ret]=1				   //书借出 
    			time1[ret]=hour*60+mi     //化为分钟 
    		}
    		end if 
    	else if a[ret]等于1 then          //书如果已借出 
    		{
    			count加1                  //次数加一 
    			time2[ret]=hour*60+mi
    			sum=sum+time2[ret]-time1[ret]  //计算借书时间 
    			a[ret]=0                       //还书 
    		}
    		end if 
    		输入 ret ch hour mi	
     }
     end while 
    	if(count!=0)  then           // 借出不为零 
    		sum=(sum/count+0.5);    //四舍五入计算平均时间 
    	end if 
    	输出 count (int)sum
        N--;
    }
    end while
    

    3.1.2 代码截图


    3.1.3 PTA提交列表及说明


    Q:开始纠结时间计算,后来发现是用最近一次的开始时间和结束时间计算

    3.2 PTA题目2

    本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

    3.2.1 算法分析

    定义整型数 N,i ,x 
    定义数组  a[N+1]    //多一个用来插入 
          b[N]      // 备份a数组 
    for i=0 to N-1   do 
    	scanf("%d",&a[i]);
    	b[i]=a[i];
    end for
    
     a[N]=X;     //先放在最后一个 
    for i=0 to N-1 do    //遍历 
    
    	if X<=a[i]  then  //寻找插入点 
    		a[i]=X;
    		break;
    	end if
    	
    end for 
    
    for i to N  do    //把原来的数往后移一位 
    	a[i+1]=b[i];
    end for
     
    for i=0 to N do
    printf("%d ",a[i]);
    end for
    

    3.2.2 代码截图


    3.2.3 PTA提交列表及说明

    Q:多使用一个数组方便后移,思路就很清晰了

    3.3 PTA题目3

    输入一个字符串,判断是否是合法邮箱(格式正确即可,不管是否真的存在)输入的只能是字母、数字、下划线、@以及.五种, @前后只能是字母或者数字,而且.后只能是com, 是则输出YES ,否则输出NO。

    3.3.1 算法分析

    定义整型数    i,flag=0;
    定义字符数组  str[100]={0};
    输入字符      gets(str);
    for  i=0;str[i];i++ then     //遍历每个字符 
    	if 属于 ‘字母、数字、下划线、@、.’  then 
    		flag=1;
    	else 
    		flag=0;break;       //不符合
    	end if
    	 
    	if str[i]==@
    		if str[i-1]属于 ‘字母、数字’ then
    			flag=1;
    		else 
    		  flag=0;break;     //不符合
    		end if 
    		
    	    if str[i+1]属于 ‘字母、数字’ then 
    			flag=1;
    		else 
    		  flag=0;break;     //不符合
    		end if 
    		
    	end if 
        if str[i]=='.' then
    	
    		if str[i+1]=='c'&&str[i+2]=='o'&&str[i+3]=='m'&&str[i+4]=='\0' then 
    			flag=1;
    		else
    			flag=0;break;    //不符合
    		end if
    		 
    	end if 
    end for 
    if flag==1  then 
    	printf("YES"); 
    else   
    	printf("NO");
    end if 
    

    3.3.2 代码截图


    3.3.3 PTA提交列表及说明


    Q1:@应该是错的
    而我的代码代码输出YES,代码为所以导致输入@也正确
    A1:经过和同学代码对比改正错误

    Q2:输入空格应该是错误的

    A:然后发现错误

    4.代码互评

    4.1 代码截图

    同学的代码

    我的代码

    4.2 二者的不同

    • 同学代码使用while循环减少了代码数,用自增、自减比较简洁,还使用了一些其他函数。
    • 我的代码更加直观,适合新手使用。
  • 相关阅读:
    数学图形之心形
    Nginx中文文档-安装 Nginx
    Mysql的row_format
    layui问题之模拟select点击事件
    深入理解HTTP协议、HTTP协议原理分析
    file_get_contents("php://input")的用法
    如何创建自己的composer包
    解决git pull/push每次都需要输入密码问题 和 HttpRequestException encountered
    微信网页授权 通过code获取openid 报错40163 code been used
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userinfo.
  • 原文地址:https://www.cnblogs.com/codedawn/p/10033869.html
Copyright © 2011-2022 走看看