第四周作业


(1) 所属课程:选择法排序 。
作业要求: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)设计思路

(3)问题与解决办法
问题1:按照书上的例题写,少了一个步骤。
解决办法:重新阅读所写代码,发现最大值下标未变。

问题2:未按照要求输出,输出无空格。
解决办法:发现输出后数字无空格,便添加空格并将第一个数字做无空格处理。

(4)运行结果

(1)所属课程:找鞍点
作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
课程目标:学会运用数组运算,学习数组运算方法。
作业的运用:找出行中最大,列中最小值。数组进一步运用。
参考文献:c语言程序设计

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

(2)设计思路

(3)错误及解决办法
错误1:编写代码时运用for 的嵌套时赋值错误。
解决办法:运用Dev-c++运算,答案错误,修改代码。

错误2:定义数组后,循环次数用6.一开始row col没有赋值。
解决办法:因为只是部分错误,所以运用Dev-c++不断编译运行,修改。

(4)运行结果

7-1作业所属课程: 冒泡法排序
作业要求:https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
课程目标:学会运用数组运算,学习数组运算方法。
作业的运用:冒泡排序法
参考文献:网上资料。

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

(2)设计思路

(3)错误及解决办法
错误:写代码时把最大值运用进去,造成代码编写混乱。
解决办法:查找冒泡排序法根据网上的资料,询问搭档。弄清两个排序法的区别。


(4)运行结果

二.学习进度统计


三.心得
这次作业难度并没有上次难度那么大,但是花的时间却更多。比如制作图表等,其实都没有真正完成。而对于代码,冒泡排序法一开始我并没有学过,搭档教的具体流程。此外,还存在一些代码格式问题的错误,下次看代码时会比较注意代码的缩进。

原文地址:https://www.cnblogs.com/1211li/p/10573652.html