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循环减少了代码数,用自增、自减比较简洁,还使用了一些其他函数。
    • 我的代码更加直观,适合新手使用。
  • 相关阅读:
    1104 Sum of Number Segments (20 分)(数学问题)
    1092 To Buy or Not to Buy (20 分)(hash散列)
    1082 Read Number in Chinese (25 分)(字符串处理)【背】
    1105 Spiral Matrix (25 分)(模拟)
    初识网络安全及搭建网站(内网)
    HTML5开发者需要了解的技巧和工具汇总(转)
    native+web开发模式之web前端经验分享
    移动平台3G手机网站前端开发布局技巧汇总(转)
    Asp.net 中图片存储数据库以及页面读取显示通用方法详解附源码下载
    使用H3Viewer来查看VS2010的帮助文档
  • 原文地址:https://www.cnblogs.com/codedawn/p/10033869.html
Copyright © 2011-2022 走看看