一、PTA实验作业

题目1:7-7 发红包

1. 本题PTA提交列表



2. 设计思路

  • 1定义整型变量hundred,fifty,twenty,ten,five,two,one分别存放不同金额的张数,number做为输入的数
  • 2输入number的值
  • 3 hundred=number/100;

    fifty=number%100/50;

    twenty=number%50/20;

    ten=(number%50-twenty* 20)/10;

    five=number%10/5;

    two=number%5/2;

    one=number%5-2* two;分别得出所需要的100,50,20,10,5,2,1的张数

  • 4输出所需要的100,50,20,10,5,2,1的张数值

3.代码截图

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



自己在编写代码时公式的使用不够准确,在各自张数的输出有欠缺

在重新思考关系编写后,修改格式,空格关系后才准确

题目2:7-8 判断合法标识符

1. 本题PTA提交列表

2. 设计思路

  • 1定义整型变量repeat,i,j,用于循环count,flag用于判断的中间条件变量,字符型变量ch
  • 2输入repeat的值,并用getchar把输入时的换行符吸收
  • 3令i=1,i<=repeat,做repeat次下列步骤(1循环)
  • 4令 j=count=flag=0做为每次循环开始的赋值
  • 5若i>1,输入字符
  • 6当字符不为‘\n’进入下列2循环
  • 7输入字符,j++
  • 8当j=1时,若满足以字母或下划线开头,则flag=1
  • 9满足字符为字母或数字或下划线时,count++(循环2结束)
  • 10 若flag=1且count=j-1即满足以字母或下划线开头,满足条件的数比输入的数少1(换行符),输出Yes,否则输出No(循环1结束)

3.代码截图

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

最开始自己没有在repeat后加上getchar吸收换行符,导致运行时以输入repeat的值就结束

加上后运行的结果并不正确,自己调试后发现字符的值并没有想象中的去改变

继续调试发现自己在一个判断的地方把判断的==写成=造成赋值

改正后发现字符并没一个一个逐渐输入改变,自己在循环里面添加一个输入,但是输入的字符串得出的结果都是No

后自己进行调试,发现外循环赋初值的问题,逐渐改正后正确

自己No的输出问题,与题目输出不同,答案错误

题目3:7-9 切分表达式——写个tokenizer吧

1. 本题PTA提交列表

2. 设计思路

  • 1定义整型变量flag=0,count=0用于判断条件的变量,i=0用于循环次数,字符型变量ch
  • 2当i<=40时进入下列步骤(循环1)
  • 3当ch!='\n'时进入下列循环(循环2)
  • 4输入字符种类
  • 5一旦输出的是换行符直接结束循环2
  • 6若i=0,输入的字符是+或-则是正负数符号问题,结束循环2,不执行下面的换行
  • 7输入的字符是点则结束循环2,不换行
  • 8较多次循环时,上一个是非数字,下一个直接输入-,则表示是负号不是减号,输出字符不换行,count清0,结束2循环
  • 9若ch不是‘-’或数字时,count=i
  • 10当flag=1且ch不为数字时输出换行(表示多个数字输入的结束)
  • 11当输入的是数时,flag=1,结束2循环,不换行
  • 12输出ch的情况,并换行(循环2结束)
  • 13 i++(循环1结束)

    3.代码截图

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



自己开始编辑时,没有很好考虑,把所有的都输出,重新思考‘—’的存放问题,以及数据的输出问题

一开始自己的运行不正确,经调试器调试后发现,i并没有按我想象中的增加,造成失误,随后自己在循环后加了break,保证每循环一次i就增加

改正后,运行与pta相同,交上去发现格式错误,自己一开始很不理解,后来观察自己与同学的运行结果发现自己多了几个换行,修改后部分正确

在考虑pta的错误点之后,运行正确

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

三、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?

  • 1定义:数组类型 数组名[数组长度];数组长度是一个常量
  • 2初始化:类型名 数组名 [数组长度]={初值表}
  • 3静态存储的数组如果没有初始化,系统自动给所有的数组元素赋0
  • 4数组元素的引用:数组名[下标] ,数组下标从0开始,下标不能越界

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

数组名是一个地址常量,存放数组内存空间的首地址

1.3 为什么用数组?

在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来互相区分,他的优点是表达简洁,可读性好,便于使用循环结构。

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.

选择法

  • 定义i,index,k,n,temp变量
  • 输出n的值
  • 定义数组a[n]
  • for(k=0;k<n-1;k++)
  • index=k;
  • for(i=k+1;i<n;i++)
  • 若a[i]<a[index]
  • index=i;结束内循环
  • temp=a[index];a[index]=a[k];a[k]=temp
  • 结束外循环

冒泡法

  • 定义n,i,j,t
  • 输入n
  • 定义数组a[n]
  • for(i=0;i<n-1;i++)
  • for(j=0;j<n-1;j++)
  • 若a[j]<a[j+1]
  • t=a[j];a[j]=a[j+1];a[j+1]=t
  • 结束循环

直接插入排序

  • 定义整型变量n,i,j,k,temp
  • 输入n的值
  • 定义数组a[n]
  • for(i=0;i<=n-1;i++)
  • temp表示最小值的角标,判断数据a[j]和temp的大小
  • 如果temp<a[j],a[j]=temp
  • 通过a[k+1]=a[k]实现插入位置后的数据整体往右挪
  • 结束循环

1.5 介绍什么是二分查找法?它和顺序查找法区别?

  • 二分查找法:对一组有序的数字中折半查找,比较与元数据相同的数据,若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找。
  • 区别

    二分查找法是一种效率较高的查找方法,但折半查找只适用于有序表,且限于顺序存储结构

    顺序查找对表中的元素排序无要求,但其方法是一个个比较查找,效率低下

1.6 二维数组如何定义、初始化?

  • 定义:类型名 数组名 [行长度][列长度]
  • 初始化:
  • 1分行赋初值

    一般形式:类型名 数组名 [行长度][列长度]={{初值表0},...,{{初值表k},...}

    把初值表中的K中所有数据依次赋给第k行的元素
  • 2顺序赋值法

    一般形式:类型名 数组名 [行长度][列长度] = {初值表}

    根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。

  • 行列下标互换
  • 下三角:i<=j
  • 上三角:i>=j
  • 对称矩阵:a[i][j]=a[j][i]

1.8 二维数组一般应用在哪里?

  • 矩阵形式的赋值
  • 方阵转置
  • 二维数据表格的计算

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

在数组的使用上模糊,易出错,选择法、冒泡法、直接插入排序的理解应用模糊,对于!(x==a)与(!x)==a,x++,++x的使用易出错

在伪代码的书写上,自己笔试编程上的能力,读代码的能力还需提高。在数据类型这块的知识点还要在捉摸,熟记。

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

  1. C语言作业--函数

    一.PTA实验作业 题目1: 400-499 中4出现的次数 1. 本题PTA提交列表 2. 设计思路 一.main函数 1.函数声明int fun(int x) 2.定义变量i,k,i表示输入的值, ...

  2. 谈谈C语言的数据类型

    本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指 ...

  3. C语言的数据类型

    复习之余,做点笔记<C语言之数据类型> 一.整数数据类型 (1)整数数据类型 整数类型 char 字符型变量   1字节(8Bit) short 短整型      2字节(16Bit) i ...

  4. C语言中数据类型的取值范围

    C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...

  5. C语言作业评价标准

    C语言作业评价标准 作业内容: 每周作业分为基础作业.挑战作业和预习作业: 基础作业为本周所学内容的巩固: 挑战作业包括但不仅限于所学知识的综合运用: 预习作业为下周所学内容的任务单,要求必须在课前完 ...

  6. 初识 go 语言:数据类型

    目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...

  7. c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏

    C语言基本数据类型大体上分为: 整型 和 浮点型   字节: 计算机中最小的储存单位     1 Byte = 8 bit 整型:         int     4                  ...

  8. 「C语言」数据类型及混合运算与类型转换

    深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录:     ...

  9. 第一次c语言作业。

    第一次c语言作业 作业1 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我认为计算机科学与技术是研究信息过程.用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科.这门学科是为 ...

随机推荐

  1. 手机端仿ios的1-n级联动脚本二

    一,图片 二,代码 2.1,html脚本 var weekdayArr=['周日','周一','周二','周三','周四','周五','周六'];var timeArr = ['08:30','09: ...

  2. Python爬虫 股票数据爬取

    前一篇提到了与股票数据相关的可能几种数据情况,本篇接着上篇,介绍一下多个网页的数据爬取.目标抓取平安银行(000001)从1989年~2017年的全部财务数据. 数据源分析 地址分析 http://m ...

  3. 程序员的自我救赎---12.2.3: 虚拟币交易平台(区块链) 下 【C#与以太坊通讯】

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

  4. php+sqlServer 2008R2 PHPstudy下数据库环境搭建

    简要:小主从事PHP二年,期间一直做后台;在过程中遇到一个奇葩的组合就是PHP+sqlServer应用场景,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下:*~*! 一.下载sq ...

  5. 20165304《JAVA程序设计》第二周学习总结

    课本内容总结 第一章 1.标识符与关键字 (1) 标识符由字母.数字.下划线"_".美元符号"$"组成,第一个字符不能是数字. 不能把java关键字和保留字作为 ...

  6. 洛谷P3796 【模板】AC自动机(加强版)(AC自动机)

    洛谷题目传送门 先膜一发yyb巨佬 orz 想学ac自动机的话,推荐一下yyb巨佬的博客,本蒟蒻也是从那里开始学的. 思路分析 裸的AC自动机,这里就不讲了.主要是这题太卡时了,尽管时限放的很大了.. ...

  7. 如何使用mysqldump备份数据库

    一.背景 在开发项目中,数据库是核心资产.除了做主备冗余增加可靠性外,定期备份数据也是必须的. 使用mysqldump备份数据具有操作简单,备份和恢复时间短的优点(mysqldump备份数据生成的是批 ...

  8. 手摸手教你微信小程序开发之自定义组件

    前言 相信大家在开发小程序时会遇到某个功能多次使用的情况,比如弹出框.这个时候大家首先想到的是组件化开发,就是把弹出框封装成一个组件,然后哪里使用哪里就调用,对,看来大家都是有思路的人,但是要怎样实现 ...

  9. Mybatis动态SQL单一基础类型参数用if标签

    Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如: 1 2 3 4 5 6 <select id="selectByName" ...

  10. 设计模式——建造者模式/生成器模式(C++实现)

    #include <iostream> #include <string> using namespace std; class STProduct { public: voi ...