第四周


https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937281
目标:对选择排序法有一个具体的学习和了解。
这次作业主要是用选择排序法编写一段代码,所以学会这个题目也对选择排序法有了一定的认识。
参考文献:《C语言程序设计》

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

2.设计思路
1582784-20190320154625584-432751918.jpg
1582784-20190320154757998-1649946600.jpg
3.遇到的问题
问题一:主要是对于空格的输出,理解上有误差,导致格式错误。
解决方法:询问室友,解决问题。
1582784-20190320155127731-1053162141.jpg
4.运行截图
1582784-20190320155250069-1526724653.jpg

https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
目标:学习找矩阵中行最大,列最小的数。
这个作业找鞍点,即我所学目标。
参考文献:《C语言程序设计》
1.实验代码

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

2.设计思路
1582784-20190320155808654-2005936270.jpg
1582784-20190320155913091-1264452479.jpg
1582784-20190320160033780-1244119070.jpg
1582784-20190320160202259-729900833.jpg
3.遇到问题
问题一:主要是在编写时比较行、列后思绪较为混乱,没有对比是否为一个数。
解决问题:上网查询,和室友讨论。
1582784-20190320160721632-1232074609.jpg
4.运行截图
1582784-20190320160757150-514747025.jpg

https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
目标:在学习选择排序法后,再学习冒泡排序法。
这个作业是用冒泡排序法把数组按从大到小输出。
主要是在百度上学习。
1.实验代码

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

2.设计思路
1582784-20190320161302842-1382348674.jpg
1582784-20190320161512131-1977220910.jpg
1582784-20190320161722005-665867749.jpg
3.遇到问题
问题一:主要还是空格处i的取值取错,导致结果错误。
解决问题:询问室友。
1582784-20190320162134810-806517796.jpg
4.运行截图
1582784-20190320162242900-382206548.jpg
心得:主要是细节上的问题,以后还是要仔细做题。
时间:一个下午加二个小时。
学习感悟:这周主要学习了选择排序法、冒泡排序法、找鞍点、字符串的查找等等。学到了排序法和字符串的一些知识。
难点主要是二中排序法一开始并未学到精髓,思维逻辑混乱。
请教室友,慢慢理清逻辑。
1582784-20190321164811048-1137407777.png
1582784-20190321170819258-1603158735.png
1582784-20190321170932826-248790667.png

转载于:https://www.cnblogs.com/arthur-w/p/10565733.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值