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, ...
随机推荐
- 异常-----freemarker.core.ParseException: Encountered
1.错误描述 freemarker.core.ParseException: Encountered " " at line 14, column 12 in myself.ftl ...
- MySQL定时备份数据库
一.MySQL数据备份 1.1. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump ...
- Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警
前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...
- 一个TokenUtils程序,亲测可用
1. Token用途 token是HTTP请求的令牌,通俗一点说是凭证,目的是防止api被随意访问获取信息. 可使用随机数生成,也可以使用用户id.密码或时间之类进行排序或者加密进行声称. token ...
- OSS Android SDK
Android SDK开发包(2014-12-20) 版本号0.2.2 开发包下载地址: http://oss.aliyuncs.com/aliyun_portal_storage/help/o ...
- [JZOJ5511] 送你一个DAG
题目描述: 给出一个 \(n\) 个点 \(m\) 条边的 \(DAG\) 和参数 \(k\). 定义一条经过 \(l\) 条边的路径的权值为 \(l^k\). 对于 \(i = 1-n\), 求出所 ...
- 【BZOJ1934】善意的投票(网络流)
[BZOJ1934]善意的投票(网络流) 题面 Description 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己 ...
- 本地安装plsql和instantclient连接linux服务器端的oracle
当虚拟机里面的linux服务器安装好oracle之后(具体安装方法在之前的博客有说到),如何连接使用呢?连接过程中会出现什么问题呢? 1.首先我们下载instantclient的压缩包,直接解压就好, ...
- 数据库学习笔记 4 强大的SQL
其实这篇文章应该至少一个星期前就应该更新了,但是最近小猿我和喜欢了好多年的女神牵手成功,所以这些天有点飘. ---创建表结构 create table tablename ( id int, name ...
- nbtstat
某个主机的ip地址为:192.168.155.1 我们通过nbtstat -a ip命令就可知道这个主机的名称信息.