C语言第五次作业--数据类型
7-2 区位码输入法:
1. 本题PTA提交列表:

2.设计思路:
- 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum存储取出的需要的数;
- 2.输入simple;
- 3.i=1;i<=2;i++;
- 4.取出simple个位上的数,存储在digit中;
- 5.去掉simple各位的数;
- sum=sum+digit*pow(10,count);
- 7.count用来判断digit所乘的10的个数;
- 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.你学会了什么?
- 一维数组如何定义、初始化?类型名 数组名 [数组长度] C语言规定静态数组才能初始化,静态数组如果没有初始化,系统自动给所有数组元素赋0;
- 一维数组在内存中结构?可画图说明。数组名表示什么?数组名是一个地址常量,存放数组内存空间首地址;

- 一维数组在内存中结构?可画图说明。数组名表示什么?数组名是一个地址常量,存放数组内存空间首地址;
- 为什么用数组?表达简洁,可读性好,便于使用循环结构;
- 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示
- 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.该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较,如果相等,则表示査找成功,否则将以该位置为基准将所要査找的序列分为左右两部分。接下来根据所要査找序列的升降序规律及中间元素与所查找元素的大小关系,来选择所要査找元素可能存在的那部分序列,对其采用同样的方法进行査找,直至能够确定所要查找的元素是否存在;
- 2.对于一个大小为n的数组,顺序查找需要完成n次比较才能确定x不在该数组中,而二分查找法所需的次数大大减少;
二维数组如何定义、初始化?二维数组初始化的形式为:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 };在{ }中给出各数组元素的初值,各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素;
2.本周的内容,你还不会什么?
1.感觉数组这一块难度开始加大,有点跟不上,要尽快补回来才行;
C语言第五次作业--数据类型的更多相关文章
- C语言第五次作业——循环结构
C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...
- C语言第五次作业函数
一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...
- c语言第五次作业--函数
一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ...
- C语言--第五次作业--指针
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 没想到都已经学习完C语言的灵魂-指针的内容了(当然也是C里面最难学习的内容了).虽然在之前就有听学习进度比较 ...
- c语言第五次作业-指针-总结博客
本次作业亮点 1.1整体情况 本次作业主要是对上次的大作业利用指针进行改进,但是大部分同学并没有很好按照老师的要求对大作业进行改进,函数的分装性也做得不够好,由于是初步学习指针,大家在本次的作业改造中 ...
- C语言第六次作业--数据类型
一.PTA实验作业 题目1,简单计算器: 1. 本题PTA提交列表 2. 设计思路 定义操作数num1,num2,结果result=0.运算符ch. 输入num1 while (ch=getchar( ...
- C语言第五次作业
#include<stdio.h> int main() { int a,b,c; printf("请输入3个整数:"); scanf("%d %d %d&q ...
- c语言第五次作业0
---恢复内容开始--- (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如 ...
- C语言第五次博客作业
一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum, ...
随机推荐
- WPF基础篇之连接数据库
WPF连接DB2数据库 public void ConnectionBD2Func() { //连接数据库字符串,DB2 9.5以下版本使用Data Source=Test,否则查询找不到数据库.DB ...
- 一:学习Linux前准备工作
1:虚拟机,网站上有很多种类的虚拟机,找一款适合自己用的.我这里使用的是 Virtual Box 下载地址:https://www.virtualbox.org/ 安装虚拟机 一路 Next 就可以. ...
- Java8 日期/时间(Date Time)使用简介
特别说明: LocalDateTime 为日期时间的计算提供了很大的方便, 在构造对象/运算/toString等方便都非常便利. 3个常用的类: java.time.LocalDateTime; ja ...
- js拖拽分析
js拖拽分析 思路 1.三个鼠标事件,mousedown,mousemove,mouseup 2.可移动性absolute 3.边界限制 得到鼠标点击处和div边界的距离,然后得出top 和 left ...
- Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库
15.14 传递Unicode字符串给C函数库¶ 问题¶ 你要写一个扩展模块,需要将一个Python字符串传递给C的某个库函数,但是这个函数不知道该怎么处理Unicode. 解决方案¶ 这里我们需要考 ...
- Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块
本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务. Jenkins采用2.5版本Docker采用 ...
- jquery的动画学习--jquery权威指南
前面的fadeIn和fadeOut还有fadeTo以及sildeToggle还有sildeUp\sildeDown还有toggle还有show.hide等都经常用,就不再手写了,需要注意的是f ...
- 【POI2001】【HDU1814】和平委员会
题面 Description 根据宪法,Byteland民主共和国的公众和平委员会应该在国会中通过立法程序来创立. 不幸的是,由于某些党派代表之间的不和睦而使得这件事存在障碍. 此委员会必须满足下列条 ...
- Bzoj4199:[NOI2015]品酒大会
题面 Bzoj4199 Sol 后缀数组 显然的暴力就是求\(LCP\)+差分 \(40\)分 # include <bits/stdc++.h> # define RG register ...
- HUD-1999-不可摸数
参考博客https://www.cnblogs.com/dongsheng/archive/2012/08/18/2645594.html Problem Description s(n)是正整数n的 ...