• 第14、15教学周作业


    题目 交换最小值和最大值
    1.实验代码

    #include<stdio.h>
    #define N 10    
    int main()
    {
     int a[N];
     int i,n,max,min,j,m1,m2,c1,c2,k;
     scanf("%d",&n);
     for(i=0;i<n;i++)
     {scanf("%d",&a[i]);
      if(i==0)
      {max=a[i];
      m1=0;}
      if(a[i]>max)
    { max=a[i];
      m1=i;
    }}
     c1=max;
     a[m1]=a[n-1];
     a[n-1]=max;
     for(k=0;k<n;k++)
     {
      if(k==0)
      {min=a[k];
      m2=0;}
      if(a[k]<min)
    { min=a[k];
      m2=k;
    }}  
    c2=min;
    a[m2]=a[0];
    a[0]=c2;
      
     for(j=0;j<n;j++)
     {
     	printf("%d ",a[j]);
     }
    
     return 0;
    }
    

    2 设计思路
    (1)主要描述题目算法
    第一步:用循环语句找出最大值
    第二步:设立第三值使最大值和目标交换
    第三步:在排好序的数字序列中找到最小值
    第四步:重复1,2步
    第五步:输出排好的序列
    (2)流程图

    3.本题调试过程碰到问题及解决办法
    一开始直接找出最大最小值,发现会产生交换已交换的数。经过思考修改思路,解决问题。

    题目 数组元素循环右移问题
    1.实验代码

    #include <stdio.h>
    int main()
    {
    	const int N=100;
        int k,c=0,i=0,n,m,j,b=0,y;
        int a[N];
        scanf("%d %d",&n,&m);
        y=m%n;
        for(i=0;i<n;i++)
        {
        	scanf("%d",&a[i]);
    	}
    	 for(j=0;j<n;j++) 
    	{  if(j+y+1>n)
          {
    	  printf("%d",a[j]);
    	  c++;
    	  if(c<n)
    	  {printf(" ");
    	  }
        }
    	}   
    	for(k=0;k<n-y;k++)
    	{printf("%d",a[k]);;
    	if(k<n-y-1)
    	{printf(" ");
    	}
    		  }  
    	
        return 0;
    }
    

    2 设计思路
    (1)主要描述题目算法
    第一步:定义数组,并根据输入的n值给数组赋值。
    第二步:通过改变数字的输出顺序做到向右移动。
    (2)流程图

    3.本题调试过程碰到问题及解决办法
    一开始尝试过交换数组中各个数字的位置,无果。后更改思路,解决问题。

    题目 冒泡法排序
    1.实验代码

    #include <stdio.h>
    #define N 100
    int main()
    {
      int a[N];
      int i,j,n,c,k,l,b;
      scanf("%d %d",&n,&k);
      for(i=0;i<n;i++)
      {
      	scanf("%d",&a[i]);
      }
      for(l=0;l<k;l++)
      {
      for(j=0;j<n-1-l;j++)
      {
      	if(a[j]>a[j+1])
      	{
      		c=a[j];
      		a[j]=a[j+1];
      		a[j+1]=c; 
    	  }
      }
    }
      for(b=0;b<n;b++)
      {printf("%d",a[b]);
       if(b<n-1)
       {printf(" ");
       }
      }
     
    

    2 设计思路
    (1)主要描述题目算法
    第一步:定义数组。
    第二步:初始化数组。
    第三步:冒泡排序。
    第四步:依次输出。
    (2)流程图

    3.本题调试过程碰到问题及解决办法
    解题过程遗忘循环条件,列出本题,希望自己多牢记。

    git地址
    https://git.coding.net/Donahue_Xu/14-and-15-Homework.git
    截图

    本周学习内容
    (1)本周你学习了哪些内容?收获了什么?
    一维数组,二维数组的定义及其使用时的注意事项。数组的运用方法(冒泡排序法,选择排序法等)。
    (2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白?
    实际运用中缺少方法,难题中缺少解题思路,无法很好运用。

    点评同学
    刘炜旗:http://www.cnblogs.com/ryo-/p/7927967.html
    赵寅胜:http://www.cnblogs.com/2017023960ZYS/p/7966581.html
    史泽文:http://www.cnblogs.com/shilcz/p/7967522.html

    点评截图
    1.

    2.

    3.

    表格

    折线图

  • 相关阅读:
    canvas+js绘制序列帧动画+面向对象
    canvas+js画饼状图
    CSS3 文本溢出问题
    jquery 实现省市二级联动
    jquery将json数据放入表格当中
    css ie6双倍margin现象
    css margin塌陷问题
    css ie浏览器兼容问题
    css 实现文字图片垂直对齐
    css 清楚浮动三种方法
  • 原文地址:https://www.cnblogs.com/xmb1547828350/p/7900249.html
Copyright © 2020-2023  润新知