zoukankan      html  css  js  c++  java
  • 第十四,十五周作业

    1.题目7-3数组数逆序存放
    (1)实验代码
    
    #include<stdio.h>
    int main(){ 
      int n;
      scanf("%d",&n);
      int a[n];
      int i;
      for(i=0;i<n;i++){
        scanf("%d",&a[i]);
      }
      printf("%d",a[n-1]);
      for(i=n-2;i>=0;i--){
       printf(" %d",a[i]);
      }
      return 0;
    }
    
    (2).设计思路
    a)定义n,i并整型定义数组a[i]
    b)将n赋值,并利用for循环将a[i]赋值
    c)根据题目要求,将数进行排序
    d)利用for循环进行输出
    

    (3).流程图

    (4)问题及解决办法
    

    遇到的问题:要求行末不能有空格,老师在课上讲过,但在编程时忘记是怎么做的了
    解决办法:该题我先用不加空格的形式输出最后一位,前几位用数字+空格形式输出既解决
    2. 7-5冒泡排序
    (1)实验代码

    #include<stdio.h>
    int main(){
      int n,i,j,t,k;
      scanf("%d %d",&n,&k);
      int a[n+1];
      for(i=1;i<=n;i++)
      {
        scanf("%d ",&a[i]);
      }
    for(j=1;j<=k;j++)
    {
      for(i=1;i<=n-j;i++)
      {
        if(a[i]>a[i+1])
    	{
    	t=a[i];a[i]=a[i+1];a[i+1]=t;
    	}
      }
    }
    printf("%d",a[1]);
    for(i=2;i<=n;i++)
      printf(" %d",a[i]);
      return 0;
    }
    
    (2)设计思路
    a)整型定义变量n,i,j,t,k,对n,k赋值
    b)定义数组a[n+1]并利用for循环进行对数组赋值
    c)用冒泡法则将数组中的数字进行排序
    d)输出最后一位数字,其余用数字+空格进行输出
    (3)流程图
    

    (4)问题及解决办法
    问题:
    


    输出a[i]时我忘记了写[i],导致按回车后只能换行,不能输出
    其次关于冒泡法则框架不是特别熟练,有待加强
    解决办法:经过几次检查之后发现了问题所在

    3  7-2方阵左下三角元素和
    (1)实验代码
    
    #include<stdio.h>
    int main(){
      int i,j;
      int a[4][4];
      int sum=0;
      for(i=0;i<4;i++)
      {	
        for(j=0;j<4;j++)
    	{
          scanf("%d",&a[i][j]);
    	}
      }
      sum=a[0][0]+a[1][0]+a[2][0]+a[3][0]+a[1][1]+a[2][1]+a[3][1]+a[2][2]+a[3][2]+a[3][3];
      printf("%d",sum);
      return 0;
    
    (2)设计思路
    a)定义整型变量i,j,初始化sum=0,定义二维数组a[4][4]
    b) 利用for循环将数组进行赋值
    c)写出左下三角元素和的公式
    (3)程序框图
    

    (4)问题及解决办法
    问题:
    

    该题目我定义了二维数组,可是在输入数组的数字时,我写了a[i],但是编译时却不显示存在问题
    解决办法:认真检查一遍又一遍之后发现并解决了问题
    #注:该题也可用条件语句进行求下三角元素和

    4  7-4整数序列中出现次数最多
    (1)实验代码
    
    #include<stdio.h>
    int main(){
      int i,j,n;
      int b[1000]={0},k=0,f=1,;
      scanf("%d",&n);
      int a[n];
      for(i=0;i<n;i++){
        scanf("%d",&a[i]);
      }
      for(i=0;i<n;i++){
        for(j=0;j<i;j++){
          if(a[i]==a[j]){b[j]++;break;}
        }
        if(f==1){b[i]++;}
      }
      int max=b[0];
      for(i=1;i<n;i++){
        if(b[i]>max)
        {max=b[i];k=i;}
      }
        printf("%d %d",a[k],max);
      return 0;
    }
    
    (2)设计思路
    a)定义整形变量i j n,因为0<N<=1000,所以需要定义b[1000]并初始化,定义k与f并初始化
    b)对n进行赋值并定义数组a[n]
    c)利用for循环,将i与n建立关系并对a[i]赋值
    d)利用两个for循环,找出相等的数字并计算出个数
    e)设数字b[0]为最大值,依次向下比较,实现下脚标的互换,计算出数字出现最多的次数
    (3)流程图
    
    (4)问题及解决办法
    问题1:
    


    由于大括号过多,不小心把输出打入到循环里了,后来仔细检查发现了问题所在
    问题2:

    break与前面用;连接,而不是,

    coding上传截图:

    coding地址:https://git.coding.net/simalang/14-15pta.git

    个人总结:
    主要学习了有关于一维数组,二维数组相关定义,初始化,利用for循环进行赋值与输出等问题,以及排序及冒泡法则的运用等等,我觉得难点在于例题与pta中作业程序不是特别好理解,有人讲的话一开始是记得的,但是时间一长,或者不复习就忘记了,所以对我来说课下复习是最为关键的,另外我还要更细心一点,经过作业之后发现有很多不该犯的细节错误,我会通过练习去改正

    点评作业:1:http://www.cnblogs.com/zxwd/p/7966928.html
    2:http://www.cnblogs.com/SR1011/p/7965948.html
    3:http://www.cnblogs.com/sun-na-/p/7875394.html
    截图:1

          2
    

          3
    

    表格与折线图:

  • 相关阅读:
    Linux下编译LibCURL
    Linux下编译OpenSSL
    Linux下编译UnixODBC
    Linux下编译Boost
    MySQL存储引擎【InnoDB、MyISAM、Memory】
    MySQL数据库MyISAM和InnoDB存储引擎的比较
    MySQL存储引擎MyISAM与InnoDB的优劣
    14款经典的MySQL客户端软件
    MySQL 数据类型
    MySQL数据库的基本数据类型
  • 原文地址:https://www.cnblogs.com/simalang/p/7965750.html
Copyright © 2011-2022 走看看