C语言博客作业—数据类型
一、PTA实验作业
题目1:
1. 本题PTA提交列表
2. 设计思路
(2)if(输入的n为奇数){
for(行数小于n/2+1时){
for(空格数等于n-2*k+1)
printf(" ");
for(星号数等于2*k-1时) //上半部分菱形
printf("* ");
输完一行后换行;
}
if(中间行){
for(星号数等于2*k-1) //中间行
printf("* ");
输完换行;
继续k+1行;
}
for(行数小于n时){
for(空格数等于2*k-1-n时) //下半部分菱形
printf(" ");
for(星号数等于n-2*(k-n/2-1)时)
printf("* ");
if(k不等于n)
putchar('\n');
}
}
(3)输入的n为偶数循环结束后,结束程序。
3.代码截图。
4.本题调试过程碰到问题及PTA提交列表情况说明。
这道题目做了很久都没有通过,一开始没有考虑好空格数和行数的关系,输出来的下半部分菱形结果很乱;改正后有菱形的雏形了又发现菱形之间是有空格的;
但是这道题一直过不了的原因是运行后和示例一样,但是一直显示格式错误;各种改空格,运行结果表面看不出有错误,用0代替空格后马上就可以看出问题了;
题目2:掉入陷阱的数字
1. 本题PTA提交列表
2. 设计思路
(1)定义i,number1为自然数,number2为对应的新的自然数,N为各个个位数,temp为每个number1值;
(2)输入number的值;
(3)while(temp不等于number2){
i++;
用temp保留number1值;
number2的值要重新赋为零;
while(number1不等于0){
N取个位;
number2=number2+N;
number1去个位;
}
得到新的自然数number2
按示例输出答案;
number1=number2,进行下一次比较;
}
(4)条件不满足时结束程序。
3.代码截图。
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 没有程序过程没有读好,number1=number2是为了把得到的新的自然数变成前一个数,进行下一个新的自然数的计算;但是把number1=number2放在while语句的前面就会出现错误,第一次开始时number2还不是新的自然数;把这条语句放到循环结尾就好了。
题目3:
1. 本题PTA提交列表
2. 设计思路
(1)定义变量flag用于判断是否出现错误,total储存运算结果,number为运算数,字符op为运算符
(2)输入运算数,并赋给total;
(3)while(运算符不是等号时,继续运算){
输入下一个运算数;
判断运算符{ 然后进行相应的运算
加号:
total=total+number;
结束判断;
减号:
total=total-number;
结束判断;
乘号:
total=total*number;
结束判断;
除号:
if(除数不为0)
total=total/number;
else除数为0时出现错误
flag=1;
结束判断;
输入其它非法运算符出现错误:
flag=1;
结束判断
}
}
(4)输入运算符等号时:
if(flag等于0)
没有错误正常输出结果;
else
输出出现错误;
(5)结束程序。
3.3.代码截图。
4.本题调试过程碰到问题及PTA提交列表情况说明。
第一次出现一些编译上的小错误,关键词写错,输出的数写错;
没有判断特殊情况,如果除法分母为0或有非法运算符,则输出错误信息“ERROR”;没有判断前:
运行结果正常:
分母为0: 有非法运算符:
改正后:
用flag来区分情况真的会方便很多,简单快捷,不然可能还需要另外判断和说明,导致代码可读性降低。
三、截图本周题目集的PTA最后排名。(2分)
PTA排名
四、本周学习总结(2分)
1.你学会了什么?
1.1 一维数组如何定义、初始化?
定义: 类型名 数组名 [ 数组长度 ]
初始化: 类型名 数组名 [ 数组长度 ] = { 初值表 };
(初值表中依次放着数组元素的初值,规定只有静态数组才能初始化,如果没有系统会自动给元素赋初0)
1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
- 一维数组在内存中结构:
- 数组名表示该数组所分配内存空间的首地址,是一个地址常量,不允许修改
1.3 为什么用数组?
- 让一批相同类型的变量使用同一个数组变量名,用下标来相互区分。它的优点是表达简洁,可读性好,便于使用循环结构。
1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.
- 选择法
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个元素数组的值。
- 冒泡法
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个元素数组的值。
- 直接插入排序
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 二维数组如何定义、初始化?
定义: 类型名 数组名 [ 行长度 ] [ 列长度 ]
初始化: 类型名 数组名 [ 行长度 ] [ 列长度 ]={ { 初值表 0 },...,{ 初值表 k },... };
( 分行赋初值,顺序赋初值)
1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。
- 例: 用二维数组 a[ n ][ n ],除对角线上的元素以外,当i小于j时(上三角),a[ j ][ i ]=a[ i ][ j ];即可实现矩阵转置。
- 上三角:i小于等于j;下三角:i大于等于j。
1.8 二维数组一般应用在哪里?
- 只知道可以用二维数组表示矩阵,既然数组可以存放多组数据,应该很多方面都可以运用吧。
2.本周的内容,你还不会什么?
- 字符的运用虽然还是不好,但是相比之前,现在稍微有点进步;像菱形的那道题可以接受,但是判断标识符还是有点问题;
- 定义函数时传数组的地址的做法还不是很能理解;
- 选择法、冒泡法、直接插入排序的区别还是不太清楚;
- 二维数组的掌握还不是很好。
C语言博客作业—数据类型的更多相关文章
- C语言博客作业--数据类型
一.PTA实验作业 题目1:7-8 判断合法标识符 1. 本题PTA提交列表 2. 设计思路 1.定义整数型变量repeat和i来存放判断字符串是否为合法标识符的次数,定义字符型ch来存放读取的字符 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- C语言博客作业4--数组
C语言博客作业4--数组 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言博客作业3--函数
C语言博客作业3--函数 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- C语言|博客作业12-学期总结
我学到的内容 我的收获 第一次:https://www.cnblogs.com/tongyingjun/p/11563433.html:总结:初步了解了C语言.代码.博客园和Markdown语法. 第 ...
- C语言|博客作业12—学期总结
一.我学到的内容 二.我的收获 (1)https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/7603 收获:第一次接触C语言和写博客,感觉特别 ...
随机推荐
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- 关于jquery插件模板的两个案例
/** * jquery tips 提示插件 jquery.tips.js v0.1beta * * 使用方法 * $(selector).tips({ //selector 为jquery选择器 * ...
- JDBCTemplate简化JDBC的操作(三)需要注意的地方
一,代码 List<String> cols = orgJdbcTemplate .queryForList( "SELECT COLUMN_NAME FROM informat ...
- 空间主页播放任意FLV格式视频方法
把文件上传到QQ网络硬盘 打开 硬盘 的 管理 选项 然后它会打开QQ邮箱的文件中转站 找到你要的视频文件 点击下载它 这里建议你使用搜狗浏览器打开网页 来到下载按钮点击下载,在弹出的对话框中选择 ...
- 【Luogu1291】百事世界杯之旅(动态规划,数学期望)
[Luogu1291]百事世界杯之旅(动态规划,数学期望) 题面 洛谷 题解 设\(f[i]\)表示已经集齐了\(i\)个名字的期望 现在有两种方法: 先说我自己的: \[f[i]=f[i-1]+1+ ...
- 【BZOJ4571】美味(主席树)
[BZOJ4571]美味(主席树) 题面 Description 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 ...
- 【HDU 2063】过山车(二分图最大匹配模板题)
题面 RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐.但是,每 ...
- 浅谈API安全设计
一.简述 安全是恒久的话题,如果不注意防范,会带来很严重的后果.比如: 1.接口被大规模调用消耗系统资源,影响系统的正常访问,甚至系统瘫痪 2.数据泄露 3.伪造(篡改)数据,制造垃圾数据 4.App ...
- PDB调试python代码常用命令
常用命令 where(w) 找出当前代码运行位置 list(l) 显示当前代码的部分上下文 list n(line number) 显示指定行的上下文 list m, n(line number) 显 ...
- signalR的集群与负载均衡
signalR是相当不错的websocket应用,最近要做集群和负载均衡 主要用到了redis进行集群,signalR的backplane集成redis. 细节,订阅redis之后注意database ...