一、PTA实验作业

题目1:7-2 求整数序列中出现次数最多的数

1. 本题PTA提交列表

2. 设计思路

定义变量n表示输入整数个数,count表示每个数出现次数,i、j表示循环变量,k表示次数最多的数的下标,max表示出现最多次数;定义数组num[1000]存放输入的整数;
初始化 count=0,k=0,max=1;
输入数字并存放在数组中;
for i=0 to i=i-1 //遍历数组,算出每一个数出现次数,并把出现最多的次数赋给max
count=0;
for j=0 to j=n-1
如果num[i]==num[j]
count++
end for j
若count大于等于max
若count等于max,k为0,max等于count
若count大于max,k自增1,max等于count
end for i
输出num[k]和max

3.代码截图

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

  • 问题1:答案部分正确

题目2:7-4 简化的插入排序

1. 本题PTA提交列表

2. 设计思路

定义变量n表示输入整数个数,i、j表示循环变量、flag表示中间替代量;
输入n;
若输入的n符合题目条件
定义数组num[n+1];
输入排序好的数据和要插入的数
for j=0 to j=n
若num[j]>=num[n],num[j]和num[n]互换
end for j
输出num[i]

3.代码截图

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

  • 问题1:答案部分正确

题目3:7-11 二分查找法

1. 本题PTA提交列表

2. 设计思路

定义变量key表示要查找的数,min表示最小下标,max表示最大下标,mid表示中间下标
定义整型数组a[10]={1,2,3,4,5,6,7,8,9,10}
初始化变量 max=9,min=0
输入key
若key>10,输出“not found”
若key==a[max],输出 max
若key<10
while(max>=min)//二分查找法
mid=(max+mid)/2
若key等于a[mid],输出 mid
若key>a[mid],min=mid
若key<a[mid],max=mid
end

3.代码截图

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

  • 问题1:答案部分正确



    测试输入数据15和10,发现程序均运行不出结果,测试输入9,程序可以运行

    检查代码发现自己忘记了输入数据不在数组中的情况

    错误代码:

改正后代码:

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

PTA排名

三、同学代码结对互评

1.互评同学名称

2.我的代码、互评同学代码截图

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

注意:第3项是评分重点,一定要有针对性说出问题,别都说好话,请专业去说他代码有哪些优势、哪些劣势。

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

C语言中是没有专门用来存储字符串的数据类型的,因此字符串只能被存储在字符数组中。通常用一维字符数组存储字符串,每个数组单元存储一个字符,以‘\0’表示字符串的结束。

1.2 字符串的结束标志是什么,为什么要结束标志?

字符串的结束标志是‘\0’。如果没有结束标志,在输出字符数组时,会输出一些随机的数,会导致程序结果错误

1.3 字符串输入有哪几种方法?

1、while((ch=getchar())!=0)

2、gets(s);

3、scanf("%s",s);

1.4 数字字符怎么转整数,写个伪代码?

定义整数变量integer、i,字符数组ch[10];
scanf("%s", ch);//输入数字字符
integer=0;
for(i=0; ch[i]; i++)
若ch[i]>=0&&ch[i]<=9
integer=integer*10+(a[i]-'0')
end for i
输出integer

1.5 16进制、二进制字符串如何转10进制?写伪代码?

十六进制转10进制

二进制转十进制

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

详细罗列不明白地方,包括课堂派错题、PTA错题。

3.期中考试小结

3.1 你认为为什么没考好?

没考好原因:

1、考前没有认真复习;

2、没有系统记住知识,做了就过,平时太过于依赖Dev,做题目也没有时间限制;

3、语法基础不太扎实,阅读程序能力很弱

3.2 罗列错题

错题1(选择题):

14、如下程序段的运行结果是___。

    #include <stdio.h>
int main()
{
int a=5, b=4, c=3, d=2;
if(a>b>c) printf("%d\n", d);
else if((c-1>=d)==1) printf("%d\n", d+1);
else printf("%d\n", d+2);
return 0;
}

A、2 B、3 C、4 D、5

我的错选:A。

错选原因:忽略了关系运算符在C语言中的用法和与在数学中的用法是不一样的,误以为 if(a>b>c)这样写的意思是平时的a>b>c的意思,其实不是。在计算机中正确表达a>b>c关系式的写法应是a>b&&b>c。

正确答案:B。(c-1>=d)的计算结果为1,进入第二个分支结构。

错题2(填空题):

4、

#include <stdio.h>
#include <math.h>
int main()
{
double sum=0,pi,t;
int i=1;
do{
t=【9】;
sum=sum+t;
i++;
}while(【10】);
pi=sqrt(6*sum);
printf("pi=%.10lf,n=%d\n", pi, i);
return 0;
}x
]

我的错填:

【9】1/pow(i,2) 【10】i>=15

错填原因:【9】里的1应该写成1.0的,因为在C语言中整数除以整数得数也是整数。

正确答案:

【9】1.0/(i*i) 【10】t>=pow(10,-15)

错题3(改错题):



我的错答:

错答原因:没有把握好考试时间,导致后面没有时间,阅读程序能力弱

正确答案:

错题4(编程题):



我的错答:





错答原因:前面没有控制好时间,后面时间不够。也没有仔细审题,写题思路不清晰,板书很乱,代码上也没有注释,导致就算写得差不多,但是得分很低

正确答案:







3.3 下半学期要怎么调整C的学习?

通过期中考试,发现自己基础并不扎实,编程时的思路也不清晰,在平时写作业的时候太过于依赖编程器,一到要在纸上写程序就不行,阅读程序的能力也比较弱。下半学期的C语言会更抽象些,打算听从老师的建议,在多看书巩固基础知识的同时尝试自己写,如果思路很混乱自己写不出来,就去看看别的同学的优秀代码,增加代码阅读量。我发现我很不擅长归纳总结,不也爱做总结,这是个很大的弊端,经常会造成做过的题回来再做就不会了的情况,在下半学期要争取克服这个缺点,做到系统地学习和复习。

C语言--二维数组的更多相关文章

  1. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  2. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  3. C语言 二维数组复制、清零及打印显示

    #include <stdlib.h> #include <stdio.h> #include <string.h> //二维整型数组打印显示 ],int row, ...

  4. C语言二维数组作业

    一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...

  5. C语言 二维数组(指针)动态分配和释放(转)

    C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...

  6. C语言二维数组

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...

  7. C语言二维数组作为函数参数

    设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

  8. C语言二维数组作为函数的参数

    前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

  9. C语言二维数组实现扫雷游戏

    #include<stdio.h> //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', ...

  10. c语言二维数组与指针

    问题,以下输出的结果是什么,区别在于哪? void main() { ][] = { ,,,,,,,,,,, }; //输出的3个地址都一样,差别在哪? printf("\n%x" ...

随机推荐

  1. 交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据

    方法一: 1.导出工作区,桌面和系统设置.操作:文件->导入和导出 2.导出公式.操作:tb公式->公式导入导出. 3.拷贝工作室文件.目录在:user\tb用户名\Workroom 4. ...

  2. request-html 简单爬虫

    import asyncio from requests_html import HTMLSession url = 'http://www.xiaohuar.com/hua/' session = ...

  3. React组件库Ant Design的安装与使用

    一.什么是 Ant Design 1.Ant Design 提炼自企业级中后台产品的交互语言和视觉风格 2.Ant Design 使用 TypeScript 构建,提供完整的类型定义文件 二.Ant ...

  4. 剑指offer:二维数组的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  5. linux系统编程之进程(一)

    今天起,开始学习linux系统编程中的另一个新的知识点----进程,在学习进程之前,有很多关于进程的概念需要了解,但是,概念是很枯燥的,也是让人很容易迷糊的,所以,先抛开这些抽象的概念,以实际编码来熟 ...

  6. 【IT】在线技术工具

    1.IP地址查询: (1)http://www.ip138.com/ 注:可查询此IP地址的服务器归属地 (2)https://x.threatbook.cn/ 注:可查询域名.ip等的反查域名 2.

  7. 题解 UVa10943

    题目大意 多组数据,每组数据给定两个整数 \(n,k\),求出用 \(k\) 个不超过 \(n\) 的数相加得到 \(n\) 的方案数(不同顺序不算同种). 分析 计数水题.令 \(f_{i,j}\) ...

  8. vue路由机制导致的坑,坑,坑

    实现一个手机定位的功能: 跳转到指定页面的时候,安卓手机地图定位正常,苹果手机第一次进入页面,地图定位不准, 要刷新后,才可以准确定位,后来无意间不用路由跳转,使用JS跳转,完美解决, 特此记录,方便 ...

  9. SPOJ - BALNUM - Balanced Numbers(数位DP)

    链接: https://vjudge.net/problem/SPOJ-BALNUM 题意: Balanced numbers have been used by mathematicians for ...

  10. Kubernetes 学习7 Pod控制器应用进阶2

    一.容器探测器 1.所谓的容器探测无非就是我们在里面设置了一些探针,或者称之为传感器来获取相应的数据作为判定其存活与否或就绪与否的标准,目前k8s所支持的存活性和就绪性探测方式都是一样的. 2.k8s ...