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. visual studio编写C#代码时“未能从程序集.....中加载类型”和“找不到方法”的一种可能的解决办法

    编译前报错:$exception    {"未能从程序集"XSW.MySQLDAL, Version=1.0.0.0, Culture=neutral, PublicKeyToke ...

  2. 2.3 InnoDB 体系架构

    下图简单显示了InnoDB的存储引擎的体系架构,从图可见,InnoDB储存引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构 缓存磁 ...

  3. js 函数中的 return+匿名函数

    今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下: 代码如下: function makefunc(x) {  return function (){   return x;  } } ...

  4. 一个完整的springmvc + ajaxfileupload实现图片异步上传的案例

    一,原理 详细原理请看这篇文章 springmvc + ajaxfileupload解决ajax不能异步上传图片的问题.java.lang.ClassCastException: org.apache ...

  5. javascript右键菜单分析

    右键菜单 思路 1.遮蔽原来的默认右键菜单 2.新建右键菜单跟随鼠标移动 3.注意边界处的位置变化 4.自定义右键内容的具体效果 具体 这样的事件涉及到有关contextmenu事件,阻止默认事件,获 ...

  6. 【转载】Spark运行架构

    1. Spark运行架构 1.1 术语定义 lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个 ...

  7. WPF自学入门(四)WPF路由事件之自定义路由事件

    在上一遍博文中写到了内置路由事件,其实除了内置的路由事件,我们也可以进行自定义路由事件.接下来我们一起来看一下WPF中的自定义路由事件怎么进行创建吧. 创建自定义路由事件分为3个步骤: 1.声明并注册 ...

  8. 【Luogu3806】点分治(点分治)

    [Luogu3806]点分治(点分治) 题面 题目描述 给定一棵有n个点的树 询问树上距离为k的点对是否存在. 输入格式: n,m 接下来n-1条边a,b,c描述a到b有一条长度为c的路径 接下来m行 ...

  9. 【NOIP2009】【CJOJ1687】【洛谷1074】靶形数独

    题面 Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z博士请教,Z 博士拿出 ...

  10. 金三银四,2018最新iOS面试题,由它可以搞定面试官?

    序言 这些资料,你一定会用到!我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多.失业即相当于转行,跳槽即相当于降低自己的身价.那么做iOS开发的你,你是否在时 ...