数组

一·.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.本周的内容,你还不会什么?

题目理解的还不是那么清晰,找不到思路。

 

 

posted @ 2017-12-26 20:58  wangdan1  阅读(385)  评论(0编辑  收藏  举报