数组

这个作业属于哪个班级 C语言--网络2011/2012
这个作业的地址 C博客作业04--数组
这个作业的目标 学习数组相关内容
姓名 陈泽役

0.展示PTA总分

1.本章学习总结

1.1 学习内容总结

  • 数组中查找数据可以通过顺序查找,逐个判断。若数组为有序数组可通过二分法查找,减少工作量。
  • 数组插入数据通过循环一次次判断,到合适位置插入。数组长度得加一,防止数组放不下
  • 排序方式:冒泡法排序、选择法排序

    1.冒泡法(以从小到大排序为例)

    1.1思路

    一次次判断,次次判断选出最大值并且将最大值放到数组的最后,然后第二次判断再将次大的放到数组倒二个地方,以此类推。

    1.2动图演示(部分数据演示)

    2.选择法(以从小到大排序为例)

    2.1思路

    让数组的第一个数值依次和后面的数据比较,如果后面的数据小就两者交换,后面数据大就和下一个进行判断。以此类推,再分别判断第二个、第三个等等。

    2.2动图演示(部分数据演示)

  • 当数组循环是,整型数组的循环判断条件是<n,而字符数组则是a[]!='\0'。

2.PTA实验作业

2.1 调查电视节目受欢迎程度

2.1.1 伪代码

      定义电视节目的数组并赋值 b[8]={0};
      定义数组a[1000],用来储存观众数;
      定义n为数组的个数;
      输入n;
      for i = 0 to n - 1
      输入数值赋予 a[i];
      进行switch结构判断节目的数量
      根据a[i]中输入的数据(1~8),让数组b进行自增;
      输出节目序号与数量,即数组b的数值;

2.1.2 代码截图

2.1.3 同学代码

2.2 找鞍点

2.2.1 伪代码

      定义矩阵的数组a[6][6]
      定义n为n阶矩阵;
      输入n;
      for i = 0 to n - 1
          for j = 0 to n - 1
      输入数值赋值a[i][j]
      固定行,通过循环找出列最大
      然后固定列最大,通过循环找出行最小
      最后判断列最大和行最小的位置是否相同
      输出结果

2.2.2 代码截图

#include <stdio.h>  
int main()  
{  
    int a[6][6],n;  
    scanf("%d",&n);  
    int i,j;  
    for(i=0; i<n; i++)  
        for(j=0; j<n; j++)  
        {  
            scanf("%d",&a[i][j]);  
        }  
    int k=0,y=0,flag=1,p=0;  
        for(i=0; i<n; i++)  
        {  
            y=i;  
            for(p=0; p<n; p++)
            {  
                if(a[i][k]<=a[i][p]) 
                {  
                    k=p;  
                }  
            }  
            for(j=0; j<n; j++)
            {  
                if(a[y][k]>a[j][k]) 
                {  
                    y=j;  
                    break;  
                }  
            }  
            if(i==y)
            {  
                flag=0;  
                break;  
            }  
        }  
        if(flag==0)  
            printf("%d %d",i,k);  
        else 
			printf("NONE");   
    return 0;  
}  

2.2.3 请说明和超星视频做法区别,各自优缺点。

2.3 切分表达式

posted @ 2020-12-13 21:56  头秃了没  阅读(131)  评论(0编辑  收藏  举报