第四周作业

所属课程:选择法排序 。

作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937281
课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
作业的运用:运用选择排序法将数组从大到小排序。
参考文献:c语言程序设计书。

作业代码

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

1. 设计思路

第一步:定义5个量I,n,t,k,index.定义一个能容纳十个数的数组。
第二步:输入n个数
第三步:利用中间变量对这n个数比较大小,按从大到小排列
第四步:输出这n个数
![](https://img2018.cnblogs.com/blog/1580717/201903/1580717-20190322195541278-1780941336.jpg

问题及解决方法

问题:代码的前半部分是在从大到小排数字,但题目是从大到小输出数字,按照这种思路,后面有一些思路混乱,不知道该如何编写代码。
解决办法:按常规思路来,与同学讨论,上网查寻资料。

运行结果

所属课程:找鞍点

作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
作业的运用:找出行中最大,列中最小值,对数组进一步进行运用,熟练掌握用数组解决相关问题。
参考文献:c语言程序设计书。

作业代码

#include<stdio.h>
int main()
{
  int i,j,n,l,k,flag;
  int a[6][6];
  scanf("%d",&n);
  flag=0;
  for(i=0;i<n;i++)
  {
    
    for(j=0;j<n;j++)
    {
      scanf("%d",&a[i][j]);   //输入矩阵
    }
  }
  l=0;
  for(i=0;i<n;i++)
  {
    for(j=0;j<n;j++)    
    {
      if(a[i][j]>=a[i][l]&&j!=l)   //先在一行中找出最大的值,记下位置;
      {
        l=j;
      }
    }
    flag=1;   //找到一行中的最大值,做个标记令flag=1;
    for(k=0;k<n;k++)
    {
      if(a[k][l]<a[i][l])   //判断它所在的列中是否有比它小的数,
        {                  //如果有则令flag=0,表示它不是鞍点。
          flag=0;
          break;
        }
    }
    if(flag==1)    //有一个鞍点,即可退出循环。
      break;
  }
  if(flag==0)
    printf("NONE");
  else
    printf("%d %d",i,l);
  return 0;
}  

设计思路

问题及解决方法

问题:对相关条件判断错误,导致运行错误。
解决方法:自己仔细寻找错误所在。

运行结果

冒泡法排序

作业要求:https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
作业的运用:冒泡排序法。
参考文献:自己网上查询的资料。

作业代码

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

设计思路

问题及解决方法

问题:先前并不了解冒泡排序是什么,对题目的理解就存在一些问题,导致不知道该如何编写程序
解决方法:自己上网查询。

运行结果

学习进度条

折线图

心得

感觉自己还存在很多不足,缺乏独立思考问题的能力,有一些问题其实仔细思考就会有结果,但自己却未仔细思考就去问同学,或者上网查询资料,希望自己以后能独立思考并解决问题,加油。

结对编程的优缺点

优点:一起合作有利于开拓思维,加速解题过程。
缺点:每个人的想法不一样,可能会造成思想的碰撞。

原文地址:https://www.cnblogs.com/buxiu888/p/10581717.html