• 第14、15教学周作业


    要求二

    7-1 求最大值及其下标

    一,实验代码

    # include <stdio.h> 
    int main(void) 
    { 
    int n, a[10], i, max, j; 
    scanf("%d", &n); 
    for(i=0; i<n;i++) 
      { 
      scanf("%d", &a[i]); 
      } 
    for(i=0; i<n;i++) 
      { 
      if(i==0) 
        { 
          max = a[i]; 
          j = i; 
        } 
      if(max<a[i]) 
        { 
          max = a[i]; 
          j = i; 
        } 
      } 
    printf("%d %d
    ", max, j); 
    return 0; 
    } 
    

    二,设计思路

    1.根据题意定义变量,分别是整型变量i(下标),n(数组长度),j,max(最大值),a[10](数组);

    2.理解题意,本题需要循环和判断两种结构,然后确定循环体和判断条件,例如:判断条件:max<a[i]),

     循环体: for(i=0; i<n;i++)
      {
      scanf("%d", &a[i]);
      }

    3.先输入一个值,确定数组长度,然后输入几个数,在进行判断,即与最大值进行比较,最后进行循环,遍历数组找到最大值;

    4.输出最大值及其下标。

    三,程序框图

    四,遇到的问题及解决方法

    遇到的问题:编译没有错误,提交时总是提示答案错误,截图如下:

    解决方法:先将错误提示翻译成汉语,然后再编译器上单步调试,再对比其他同学的答案,发现应将i=1,写成 i=0,改过来就对了。

    五,运行结果图

     

    六,提交列表

    7-3 将数组中的数逆序存放

    一,实验代码

    #include <stdio.h>
    int main()
    {
        int i, n, swap, array[10];
        scanf("%d", &n);
        for (i = 0; i < n; i++)
            scanf("%d", &array[i]);
        for (i = 0; i < n/2; i++)
        {
            swap = array[i];
            array[i] = array[n-1-i];
            array[n-1-i] = swap;
        }
        for (i = 0; i < n-1; i++)
            printf("%d ", array[i]);
        printf("%d
    ", array[n-1]);
        return 0;
    }
    

    二,设计思路

    1.根据题意定义变量,分别是整型变量:i,n(数组长度),swap(中间变量),array[10](数组),

    2.理解题意,本题需要用到循环结构,确定循环体,即数组中的数逆序存放的代码:

     for (i = 0; i < n/2; i++)
        {
            swap = array[i];
            array[i] = array[n-1-i];
            array[n-1-i] = swap;
        }

    3.输入数字,确定数组长度,再输入几个数,确定数组长度,数组首尾位置的数互换,以此类推‘

    4.输出新的数组。

    三,程序框图

    四,遇到的问题及解决方法

    遇到的问题同上,错误截图如下:

    解决方法:单步调试,发现循环体的确定有误,后又上网查找,改成

    for (i = 0; i < n/2; i++)
        {
            swap = array[i];
            array[i] = array[n-1-i];
            array[n-1-i] = swap;
        }

    就对了。

    五,运行结果图

    六,提交列表

     

    附加题:

    7-3 求整数序列中出现次数最多的数

    一,实验代码

    #include<stdio.h>
    int main()
    {
        int i,j,n,max,x=0;
        scanf("%d",&n);
        int a[n],b[n];
        for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n;i++)
    {
    b[i]=0;
    for(j=0;j<n;j++)
    if(a[i]==a[j])
    b[i]++;
    }
    	max=b[0];
    for(i=1;i<n;i++)
    if(max>b[i])
    {
    max=b[i];
    x=i;
    }
    printf("%d %d",a[x],max);
    return 0;
    }
    

      

     

    二,设计思路

    1.根据题意定义变量,分别是整型变量i,j,n(定义数组长度),max(出现最多的次数),x(下标),a[i](数组),b[i](数组);

    2.理解题意,本题需用循环,判断两种结构,并确定循环体和判断条件,例如:循环体:

    for(i=0;i<n;i++)
    {
    b[i]=0;
    for(j=0;j<n;j++)
    if(a[i]==a[j])
    b[i]++;
    };

    判断条件:max>b[i];

    3.先输入一个数,确定数组长度,在输入几个数,即数组中的数,然后遍历数组,找到出现最多的数;

    4.输出结果。

    三,程序框图

    四,遇到的问题及解决方法

    问题截图如下:

    问题原因:第一个for中,i=1.

    问题原因:最后一个for循环中max>b[i].

    解决方法:将上述的问题都改正后,在编译器上编译运行,结果正确后,提交就可以了。

    五,运行结果图

    六,提交列表

    要求三

    上传文件截图

    GIT地址:https://git.coding.net/Hunjunxian/juhao.git

    要求四

    个人总结

    1.学习了一维数组的定义,初始化,及一些经典的例子,如选择排序法,冒泡排序法等。

    2.学习了二维数组的定义,赋初值,以及一些实例,如求矩阵每一行的和,求下三角,对角线两侧数据交换等。

    3.收获:对数组有了更深入地了解,也学会了用程序坚决一些简单的问题,如求数组中的最大值及其下标。

    4.难点:我认为对数组中的数进行排序是一个难点,尤其是冒泡排序法,不是很好理解,而且也不能很好的区分选择排序法和冒泡排序法。

    5.对于难点问题,课下需要多看,多练习,个人认为若实在理解不了也可以直接背下来,以后也可以直接拿来用。

    要求五

    互评和学习进度

    1.我评价的博客:

    何宗彦:http://www.cnblogs.com/hezongyan/

    陈雨秋:http://www.cnblogs.com/cyq66992152/

    姚爽:http://www.cnblogs.com/yaoshuang/

    2.学习进度条

    日期 代码行数 时间1 博客字数 时间2 知识点
    2017.12.2 230 约5hours 约400 1.5hours 数组的相关内容

     3.折线图

  • 相关阅读:
    Java将对象保存到文件中/从文件中读取对象
    Python爬虫框架--Scrapy安装以及简单实用
    Python--网络爬虫模块requests模块之响应--response
    用Pycharm创建指定的Django版本
    python网络爬虫之requests模块
    Python---异常处理
    Python函数的装饰器修复技术(@wraps)
    Django Rest framework
    Vue的基础使用
    Vue
  • 原文地址:https://www.cnblogs.com/123456hjx/p/7906539.html
Copyright © 2020-2023  润新知