C作业--数据类型
一、PTA实验作业
题目1:7-3 倒顺数字串
1. 本题PTA提交列表
2. 设计思路(伪代码)
- (1)本题是要求输入倒顺序数串,首先看到这种题肯定是需要用到循环,那就先定一个整形i来进行循环,n是表示最大的整数。
- (2)输入n的值。
- (3)因为无论哪个数字都是从1开始,那就先数出1来控制行末的空格。
- (4)在进行一个循环for i=2 to i=n;逐一输出i的值,并在格式上控制在i的前面加一个空格。
- (5)在进行一个循环 for i=n-1 to i=1,i--;在逐一输出i的值即可。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
题目2:7-8 判断合法标识符
1. 本题PTA提交列表
2. 设计思路
- (1)首先定义三个整形数repreat,i,j,repreat表示输入的字符串的个数。repreat表示输入字符串的个数,i,j用来循环。
- (2)int flag=1,flag是用来判断这个字符串是否为合法字符串。
- (3)char ch 定义一个字符型变量来输入字符。
- (4)进行循环for i=1 to i=repreat i++.
- (5)在嵌套一个循环for j=1to j=80 j++
- (6)在逐一输入字符ch,
- (7)if(j==1 并且 ((ch>='0') 并且 (ch<='9'))),则flag=0;这是因为首个字符只能是_或则字母。
- (8)if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch'\n') || (ch'_') || (ch>='0' && ch<='9'))这是用来判断除第一个以外的字符,若为字母或则数字还有下划线都算为合法字符。则保持原有的flag=1,否则 flag=0;
- (9)if(ch=='\n')当输入的字符为回车是就停止输入字符就break
- (10)再到循环外,进行判断flag的值若奇值为1则输出YES 否则输出NO
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- (1)
起初对于数字在开头的表述方式是错误的没有注意到,然后另外一个错误是,我定义了一个flag=1,用来做判断这字符串是否正确,所以我在if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch'\n') || (ch'_') || (ch>='0' && ch<='9'))的条件下加了一个flag=1,可是如果一个字符串中出现非法字符的同时又出现正确的字符那么这个flag 就会叠加,导致最后答案不正确。
- (2)
然后我就在输入字符后加了一个if(j1 && ((ch>='0') && (ch<='9')))判断第一个字符是否为数字,如果满足就 flag=0
在则我取消了if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch'\n') || (ch=='_') || (ch>='0' && ch<='9'))后面的flag=1的操作,这样就可以解决叠加的效果。
题目3:7-10 简单计算器
1. 本题PTA提交列表
2. 设计思路
- (1)int x,y定义两个整形变量x表示运算的上一个数,二Y表示运算的下一个数,然后在char ch,表示所要输入的运算符
- (2)scanf("%d",&x) scanf("%c",&ch);先输入x的值和运算符
- (3)在进行一个while(ch!='=')当ch为=是结束循环,在循环内scanf("%d",&y);输入y的值if(ch'+' || ch'-' || ch'*' ||ch'/')用来判断之前输入的字符为什么,
- (4)if(ch'+' || ch'-' || ch'*' ||ch'/')则进入switch (ch)语句 case'+' :x=x+y;break; case'-' :x=x-y;break; case'' :x=y;break;因为除法比较特殊单独拿出来操作
- (5)if(ch=='/'),在这个if语句中再次判断if(y!=0)则x/=y否则就输出ERROR,并return 0;
- (6)然后在前面那个大if下还有一个elseprintf("ERROR");return 0;
- (7)然后在if语句外while语句内在输入ch
- (8)最后在while语句外输出printf("%d",x)
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- (1)
第一次莫名其妙的第一次出现了段错误这个名词,检查后发现在输入的时候漏掉了地址
- (2)
这次是为非法字符的错误好像是漏掉的考虑ch是否为非法字符
然后我就在switch语句前加了一个if(ch'+' || ch'-' || ch'*' ||ch'/')的判断。
二、截图本周题目集的PTA最后排名。
三、本周学习总结(3分)
1.你学会了什么?
1.1 一维数组如何定义、初始化?
1:定义一个数组,需要明确数组变量名,数组元素的类型和数组的大小。
一般形式为类型名 数组名 [数组长度] 注意!!数组长度是一个常量
1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
数组名是一个地址常量,存放数组内存空间的首地址
1.3 为什么用数组?
在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下表来相互区分。它的优点是表达简洁,可读性好便于使用循环结构。
1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示
- (1)选择法
1.定义整型变量i,k,min,temp;
2.输入n;定义 a[n];
3.for(i=0;i<n;i++),输入n个数;
4. for(k=0;k<n-1;k++),min=k;
5. for(i=k+1;i<n-k;i++);
if(a[i]<a[min]) min=i;
重复执行第5步骤,直到i=n-k为止;
temp=a[k-1]; a[k-1]=a[min]; a[min]=temp;
重复执行第4步骤,直到k=n时为止;
6.输出n个元素数组的值。
- (2)冒泡法
1.定义整型变量i,k,temp,N;
2.输入n;定义 a[n];
3.for(i=0;i<n;i++),输入n个数;
4. for(k=0;k<n-1;k++),temp=k;
5. for(i=k+1;i<n-k;i++);
if(a[i]<a[temp])
N=a[itemp]; a[temp]=a[i]; a[i]=N;
重复执行第5步骤,直到i=n-k为止;
重复执行第4步骤,直到k=n时为止;
6.输出n个元素数组的值。
- (3)直接插入排序
1.定义整型变量i,k,bigger,temp;
2.输入n;定义 a[n];
3.for(i=0;i<n;i++),输入n个数;
4. for(k=0;k<n-1;k++),bigger=k;
5. for(i=k+1;i<n;i++);
if(a[i]<a[bigger])
for(j=k;j>=0;j--)
a[ j+1]=a[ j ];
重复执行第5步骤,直到i=n-k为止;
重复执行第4步骤,直到k=n时为止;
6.输出n个元素数组的值。
1.5 介绍什么是二分查找法?它和顺序查找法区别?
二分查找法是在元素按从小到大排列的数组中查找一个数时,取数组的中间值判断是该数比要找的数大还是小,然后进一步锁定相应的范围,直到找到要找的数或者最后一个数并不是该数
区别:顺序查找法是从第一个找到最后一个,直到找到要找的数或者最后一个数并不是该数,没有找到该数。顺序查找法比二分查找法要简介明了,更直接;但是二分查找法工作效率更高,如果数组元素比较多的话,顺序查找法的效率就会降低。
1.6 二维数组如何定义、初始化?
1:在二维数组定义时,初始化有两种方法
1:分行赋值法:
类型名 数组名 [行长度] [列长度]={{初始值0},{初始值1}.......}
2:顺序赋值法
一般形式为:
类型名 数组名 [行长度][列长度]={初值表}
1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。
用二维数组 a[ n ][ n ],除对角线上的元素以外,当i小于j时(上三角),a[ j ][ i ]=a[ i ][ j ];即可实现矩阵转置。
上三角:i小于等于j;下三角:i大于等于j。
1.8 二维数组一般应用在哪里?
我觉得应该是用于表示矩阵,和多维向量。
2.本周的内容,你还不会什么?本周内容对于:切分表达式——写个tokenizer吧这道题我还是不会,对于这种字符的题目,我还是没有掌握的很清楚。
对于数组的使用还是很生疏。
C作业--数据类型的更多相关文章
- C语言博客作业--数据类型
一.PTA实验作业 题目1:7-8 判断合法标识符 1. 本题PTA提交列表 2. 设计思路 1.定义整数型变量repeat和i来存放判断字符串是否为合法标识符的次数,定义字符型ch来存放读取的字符 ...
- C语言作业--数据类型
一.PTA实验作业 题目1:7-7 发红包 1. 本题PTA提交列表 2. 设计思路 1定义整型变量hundred,fifty,twenty,ten,five,two,one分别存放不同金额的张数,n ...
- C语言第六次作业--数据类型
一.PTA实验作业 题目1,简单计算器: 1. 本题PTA提交列表 2. 设计思路 定义操作数num1,num2,结果result=0.运算符ch. 输入num1 while (ch=getchar( ...
- C语言第六周博客作业--数据类型
一.PTA实验作业 题目1: 7-6 掉入陷阱的数字 1. 本题PTA提交列表 2.设计思路 定义变量N,i,g=1表示位数,a表示各位数字相加的和,b=0,j,N1,c,d用于储存N do{ for ...
- C语言博客作业—数据类型
一.PTA实验作业 题目1: 1. 本题PTA提交列表 2. 设计思路 (2)if(输入的n为奇数){ for(行数小于n/2+1时){ for(空格数等于n-2*k+1) printf(" ...
- C语言第六次博客作业--数据类型
一.PTA实验作业 题目1:区位码输入法 1. 本题PTA提交列表 2. 设计思路 (1)定义整型变量code放区位码,areacode放区码,digitcode放位码,one放个位数,two放十位数 ...
- C语言第五次作业--数据类型
7-2 区位码输入法: 1. 本题PTA提交列表: 2.设计思路: 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum ...
- GetLastError()函数返回值及含义
GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值, ...
- GetLastError返回值的含义
[0]-操作成功完成. [1]-功能错误. [2]-系统找不到指定的文件. [3]-系统找不到指定的路径. [4]-系统无法打开文件. [5]-拒绝访问. [6]-句柄无效. [7]-存储控制块被损坏 ...
随机推荐
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...
- jquery四种监听事件的区别
最近找工作被问到了jquery有哪些事件监听,都有什么区别,忽然有点想不起来了... 然后上网上查看了相关的资料,总结一下,方便大家查看,也方便自己复习! 1.bind()方法: bind(type, ...
- Neo4J图库的基础介绍(一)
•Neo4j是一个高性能的,NOSQL图形数据库,它完全支持ACID(原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability))数据 ...
- 通过分析HSL/HSB获取图片主色调
这两天稍微研究了一下颜色的HSL/HSB值,主要因为写程序想要实现通过一张图片拿到图片中的最突出的颜色值(类似Groove Music中播放栏背景就是从专辑封面中取出主色调,还有Windows 10任 ...
- 【WC2001】【cogs358】高性能计算机(动态规划)
[WC2001][cogs358]高性能计算机(动态规划) ##题面 [问题描述] 现在有一项时间紧迫的工程计算任务要交给你--国家高性能并行计算机的主管工程师--来完成.为了尽可能充分发挥并行计算机 ...
- mac 配置虚拟主机
http://www.upwqy.com/details/4.html 编辑httpd.conf文件,输入命令: vim /etc/apache2/httpd.conf 编辑httpd-vhosts. ...
- jQuery对于动态生成的元素绑定无效的问题~~
问题:很多时候发现,对动态生成的元素绑定click事件是无效的- 原因:直接绑定到动态生成的元素是无效的,是因为Jquery扫描文档找出所有的$(‘’)元素,并把函数绑定到每个元素的click事件上, ...
- 简单http代理服务器搭建
1. yum install squid2. vi /etc/squid/squid.conf 将http_access deny all 中deny 改为allow,http_port后面的是端口号 ...
- Git 初体验
第一次接触git的时候,一直在纳闷git和github的区别,解释下,git是版本管理工具,github是开源共享平台,个人这么理解,理解这么多就行了 先说git吧,下载git客户端,地址:http: ...
- Java内存区域之程序计数器--《深入理解Java虚拟机》学习笔记及个人理解(一)
Java虚拟机程序计数器 在书上的P39页 程序计数器干嘛的? 有了它,字节码解释器才可以知道下一条要执行的字节码指令是哪个. 无论是取下一条指令还是分支.循环.跳转.中断.线程恢复,都需要这个程序计 ...