数组
一·.PTA实验作业
1.7-14简化的插入排序
本题PTA提交列表
2.设计思路
定义i,j,N,X,item=0几个变量以及a[10]整形数组,N表示存放的个数;
用for循环输入N个数组;
输入要插入的数字X;
在for(i=0;i<N;i++)循环中用if-else判断输入的数组和X的大小,
if(a[i]<X)输出a[i],否则执行else输出X,再用for循环按顺序输出没有输完的数组;
用item来判断是否执行了else,没有则表示X最大,因此还需输出X
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
忽略了当X是最大时的那种情况,运行出来没有输出X。
所以在return 前面增加了if语句用来判断X是否是最大的数,是则输出X;
格式错误是因为printf("%d",a[i])中%d后面没有加一个空格
题目2.7-4 查找整数
1.本题PTA提交列表
2.设计思路
定义n,x,a[20],i, flag=0;
输入存放个数n与要寻找的数x;用for循环输入数组a[i];
用for循环从a[0]开始,相等flag=1,输出i;否则为flag=0,输出Not Found
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
当输入5 7
3 5 8 1 9 时输出的不是Not Found,而是5.当将代码重新检查一遍之后发现if中的flag写成了flag=1,而不是flag==1
题目3.7-17判断上三角矩阵
1.本题PTA提交列表
2.设计思路
判断上三角,则主对角线以下的数要为0,即用到二维数组
定义t,n,a[10][10],i,j,k,flag=1;
输入待检测的矩阵个数,在for循环里面输入每个矩阵的信息,然后再判断当j<i-1时,二维数组a[i][j]==0是否成立,不成立则flag=0;最后用if判断flag,当flag==1,输出YES,否则NO.
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
格式错误原因在于最后输出的YES和NO后面没有加\n,而且经过判断后发现if(n==1)那条语句多余
二、截图本周目集的PTA最后排名。
三、同学代码结对互评
1.互评同学名称
洪依妍
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
(1)我采用的是二维数组,同学用的是一维数组。
(2)我的代码优势在于简洁,能够使人一目了然,看的明白。
同学的代码在for循环中用了太多的if判断,使人逻辑有点混乱。
(3)我更喜欢自己的代码
四、本周学习总结
1.你学会了什么?
1.1一维数组的引用,定义的一般形式为:类型名 数组名 [数组长度]
int a[10]; /*定义一个有10个整型元素的数组a*/
char c[200]; /*定义一个有200个字符型元素的数组c*/
float f[5]; /*定义一个有5个单精度浮点型元素的数组f*/
1.2二维数组行、列下标的对应关系
术语 含义 下标规律
主对角线 从矩阵的左上角至右下角的连线 i==j
上三角 主对角线以上部分 i<=j
下三角 主对角线以下部分 i>=j
副对角线 从矩阵的右下角至左下角的连线 i+j==N-1
1.3字符串的结束符'\0'
1.4字符串的存储、赋值、输入
static char s[80];
s[0]='a';
s[1]='\0';
也可等价于:
static char s[80]="a";
1.5字符数组的输入与输出可以有两种方式
(1)逐个字符输入输出。用格式符“%c”输入或输出一个字符。
(2)将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出
1.6区分"a"和'a'.
前者是字符串常量,包括'a'和“\0”两个字符,用一维数组存放;后者是字符常量,只有一个字符,可以赋给字符变量。
1.7字符串处理函数
(1)puts(字符数组),作用是将一个字符串(以'\0'结束的字符序列)输出到终端
(2)gets函数,作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址
(3)strcat函数
其一般形式为strcat(字符数组1,字符数组2),作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符串1中,函数调用后得到一个函数值——字符数组1的地址
例如:
char str1[30]={"People's Republic of"};
char str2[]={"China");
printf("%s",strcat(str1,str2);
输出:
People's Republic of China
(4)strcpy(字符数组1,字符串2)。作用是将字符串2复制到字符串1中
(5)strcmp(字符串1,字符串2 ),作用是比较字符串1和字符串2,相同为零,大于为正数,小于为负数
2.本周的内容,你还不会什么?
题目理解的还不是那么清晰,找不到思路。