7-2 区位码输入法:

1. 本题PTA提交列表:

2.设计思路:

  • 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum存储取出的需要的数;
  • 2.输入simple;
  • 3.i=1;i<=2;i++;
  • 4.取出simple个位上的数,存储在digit中;
  • 5.去掉simple各位的数;
    1. sum=sum+digit*pow(10,count);
  • 7.count用来判断digit所乘的10的个数;
    1. character1=sum+160;character2=simple+160;
  • 9.输出高字节区位码和低字节区位码,输出汉字;

    3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.一开始思路错误,以为将输入的四位数拆分成两个数,就行了,即输入%c%c,&simple1,&simple2;但后来发现这样漏洞百出,首先输入的应是数字而不是字符,因为经调试发现计算机根本没法处理字符,其次,输入的两个数如韩国中间不用空格隔开,便看成只输入一个数,而题目中 的输入又不带空格,所以显然拆分的做法不可行;

  • 2.不知如何把取余后的数按原来的样子取出来,如从1614中取出14,无论是令sum=sum10+digit,还是令sum=sum+digit10,都不能原样取出14,后来想到引用一个变量count来控制何时digit该乘10;

  • 3.忘给count赋初值;

  • 4.刚开始想到用simple/100,simple%100,的方式取出前两个数,经调试发现那样不可行;

    7-4 打印菱形图案:

    1.本题PTA提交列表:

    2.设计思路:

  • 1.i,k,j,y,h定义循环控制变量,n定义输入的正的奇数;
  • 2.k控制行数,k=1;k<=n;k++;
  • 3.如果行数不过半,i=1;i<=n-1-2(k-1);i++控制输入之前的空格数;
  • 4.j=1;j<=2k-1;j++,控制输出和空格的个数,因为最后一个*号后没有字符,空格输出可以忽略;
  • 5.如果行数超过一半,y=1;y<=n-1-2*(n-k);y++,控制菱形一半行数后的行数空格的输出;
  • 6.h=1;h<=2n-2k+1;h++,控制输出*和空格的个数;

    3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.这道题和嵌套循环7-3编程打印空心字符菱形有类似之处,它们都需要找出行数和输出个数之间的规律,也都需要分上下部分来算,不同的是本题省去了计算中间空格,多了每个符号后面还要输出空格的条件,会相对简单,但是正因为每个符号后还要输出空格,所以前面空格的输出就有变化,以前的题前面空格输出是每行差一个空格,而本题的每行差2个空格,给找规律增加了难度。一开始因为没发现这个变化,以为空格个数还是每行差1个,导致错误;

    7-8 判断合法标识符:

    1.本题PTA提交列表:

    2.设计思路:

  • 1.定义整型变量i,j,repeat,flag,其中flag用来判断字符是否合法,repeat控制输入次数,定义字符变量symbol;
  • 2.输入symbol;
  • 3.i=1;i<=repeat;i++,控制输入次数;
  • 4.flag=0;每一次重新判断新变量时先将flag归0,以防影响下一次判断;
  • 5.嵌套一个循环j=1;j<=80;j++,控制字符个数不超过80个;
  • 6.输入symbol,循环读取单个字符;
  • 7.如果第一个字符就是数字,则判断不合法,令flag=1
  • 8.如果都不满足symbol是字母,数字,下划线,回车,则判断为不合法,即令flag=1,回车虽然不在合法字符,范围内,但当读取它时,为了不让其进入此条件,便将其作为合法字符
  • 9.如果读取了回车,说明此字符型变量已经读完,可以跳出循环;
  • 10.如果flag=1,则不是合法字符,否则是合法字符;

    3.本题调试过程碰到问题及PTA提交列表情况说明:

  • 1.发现了ch=getchar()和scanf("%c",&ch)的功能是一样的,都只能读取单个字符,且经调试发现,当你输入字符串时,如果没有将其中的每个字符读完,循环是不会罢休的,所以你一定要注意两点:一是题目给出的允许输入字符个数的上限;二是题目所说的字符串(不是单个字符)之间的间隔是空格还是回车或者是#还是别的什么,当循环读取到这个字符时,果断break;
  • 2.一开始把!(symbol>='a'&&symbol<='z')&&!(symbol>='A'&&symbol<='Z')&&!(symbol>='0'&&symbol<='9')&&!(symbol=='')写成!(symbol>='a'&&symbol<='z')||!(symbol>='A'&&symbol<='Z')||!(symbol>='0'&&symbol<='9')||!(symbol==''),经调试后发现逻辑不对,改了过来;

  • 3.认为当判断有一个不合法字符便可输出,于是在进入不合法条件时便令其break,后来调试发现即使你让它break,它也还是会把当前字符串读取到最后一个字符为止,所以我在读取到\n符的时候break,刚好也读取完了这个字符,然后读入下一个字符;
  • 4.另外遇到的一个问题是当读到\n时,它会进入if!(symbol>='a'&&symbol<='z')&&!(symbol>='A'&&symbol<='Z')&&!(symbol>='0'&&symbol<='9')&&!(symbol=='_')条件,所以为了防止它进入条件使得flag=0;
  • 5.一开始不懂得用一个变量来判断合法与否,只是令其在满足条件时输出,发现会输出多次,最后考虑新设置一个变量来帮助判断;

    二、截图本周题目集的PTA最后排名:

    三、本周学习总结:

    1.你学会了什么?

    1. 一维数组如何定义、初始化?类型名 数组名 [数组长度] C语言规定静态数组才能初始化,静态数组如果没有初始化,系统自动给所有数组元素赋0;
    1. 一维数组在内存中结构?可画图说明。数组名表示什么?数组名是一个地址常量,存放数组内存空间首地址;

    1. 为什么用数组?表达简洁,可读性好,便于使用循环结构;
    1. 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示
  • A.选择法:.
  • 1.定义数组a,index存放最小值所在的下标;
  • 2.将输入值依次赋给数组a的n个元素;
  • 3.k=0;k<n-1;k++,令index=k,当找不到a[i]<a[index]时,a[index]依旧保持它的值;
  • 4.k+1;i<n;i++;寻找最小值所在下标;
  • 3.如果a[i]<a[index],令index=i;
  • 4.以temp为媒介交换a[index]和a[k]的值;
  • 5.依次输出a[i的值;

    1. 介绍什么是二分查找法?它和顺序查找法区别?
  • 1.该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较,如果相等,则表示査找成功,否则将以该位置为基准将所要査找的序列分为左右两部分。接下来根据所要査找序列的升降序规律及中间元素与所查找元素的大小关系,来选择所要査找元素可能存在的那部分序列,对其采用同样的方法进行査找,直至能够确定所要查找的元素是否存在;
  • 2.对于一个大小为n的数组,顺序查找需要完成n次比较才能确定x不在该数组中,而二分查找法所需的次数大大减少;
    1. 二维数组如何定义、初始化?二维数组初始化的形式为:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 };在{ }中给出各数组元素的初值,各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素;

      2.本周的内容,你还不会什么?

  • 1.感觉数组这一块难度开始加大,有点跟不上,要尽快补回来才行;

C语言第五次作业--数据类型的更多相关文章

  1. C语言第五次作业——循环结构

    C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...

  2. C语言第五次作业函数

    一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...

  3. c语言第五次作业--函数

    一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ...

  4. C语言--第五次作业--指针

    1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 没想到都已经学习完C语言的灵魂-指针的内容了(当然也是C里面最难学习的内容了).虽然在之前就有听学习进度比较 ...

  5. c语言第五次作业-指针-总结博客

    本次作业亮点 1.1整体情况 本次作业主要是对上次的大作业利用指针进行改进,但是大部分同学并没有很好按照老师的要求对大作业进行改进,函数的分装性也做得不够好,由于是初步学习指针,大家在本次的作业改造中 ...

  6. C语言第六次作业--数据类型

    一.PTA实验作业 题目1,简单计算器: 1. 本题PTA提交列表 2. 设计思路 定义操作数num1,num2,结果result=0.运算符ch. 输入num1 while (ch=getchar( ...

  7. C语言第五次作业

    #include<stdio.h> int main() { int a,b,c; printf("请输入3个整数:"); scanf("%d %d %d&q ...

  8. c语言第五次作业0

    ---恢复内容开始--- (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如 ...

  9. C语言第五次博客作业

    一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum, ...

随机推荐

  1. js call的方法

    call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN ...

  2. C# 程序员最常犯的 10 个错误(转)

    关于C#关于本文常见错误 #1:把引用当做值来用,或者反过来常见错误 #2:误会未初始化变量的默认值常见错误 #3:使用不恰当或未指定的方法比较字符串常见错误 #4:使用迭代式 (而不是声明式)的语句 ...

  3. C# Hook原理及EasyHook简易教程

    前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的, ...

  4. 关于access_token过期的解决办法

    最近在做微信的发送模版消息,在测试的时候发现有的时候能够发送,有时候无法发送,查了相关的日志(日志记录发送结果很重要!!),看到了微信返回的错误消息,发现是 invalid credential, a ...

  5. Selenium简介与环境搭配-----Selenium快速入门(一)

    Selenium是一套自动化测试框架.官方网站是:https://www.seleniumhq.org/  某些童鞋访问可能需要FQ. Selenium支持多种语言开发,例如Java,Python,C ...

  6. 动态增加表单元素并获取元素的text和value提交

    以上是效果图 需求是这样的: 专家设置好条件,然后设备检测到达到相应的条件之后,设备发出提醒给用户. 这就需要专家设置好能看懂的条件之后,然后把给专家看的,正常人能看懂的条件和发送的设备的,设备能够识 ...

  7. 11.python线程

    基本概念 1.进程       定义: 进程就是一个程序在一个数据集上的一次动态执行过程. 组成:  进程一般由程序.数据集.进程控制块三部分组成. 程序:  我们编写的程序用来描述进程要完成哪些功能 ...

  8. jsp常用的jstl语法

    <c:forEach items="<object>" begin="<int>" end="<int>&q ...

  9. 基于fitnesse浅析waferslim引擎

    最近在用fitnesse框架做自动化测试,简单总结一下,后边再补充内容. 1.fitnesse简介:后续补 略,见官网 http://www.fitnesse.org/ 2.waferslim引擎之p ...

  10. VirboxLM许可管理平台,一站式软件保护解决方案

    安全,易用,灵活 轻松解决开发者软件版权保护难题 Virbox LM为企业提供安全易用的软件保护管理平台,实现高安全强度的软件防护,防止盗版及逆向工程.实现便捷.安全的软件授权,包括创建灵活的许可模式 ...