第四周作业

|这个作业属于哪个课程| C语言程序设计II |
| -------- | -----: | :----: |
|这个作业要求在哪里|[2019年春季学期第四周作业](https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/)|
|我在这个课程的目标是| 我希望通过学习能提高对数组的熟练度|
|这个作业在哪个具体方面帮我实现目标|让我知道了多个排序法的运用|
|参考文献|课本C语言程序设计II |
7-1 找鞍点
1).实验代码

#include<stdio.h>
int main()
{
   int a[6][6];
   int n,i,j,x,y,k,max,min,flag=0;
   scanf("%d",&n);
   for(i=0;i<n;i++)
   for(j=0;j<n;j++)
   scanf("%d",&a[i][j]);
   for(i=0;i<n;i++)                //扫描所有的行
{
   max=a[i][0]; y=0;               //首元素先作为行上“最大”的数
   for(k=1;k<n;k++)
   if(max<=a[i][k])                //找出行上的最大值
{ 
   max=a[i][k];  
   }  
   for(j=1;j<n;j++)
   if(max==a[i][j])                //检查行上最大值的列
{ 
   y=j;                             //记录本行上最大的数,及其列号y
   min=a[i][y];                     //把a[i][y]当作y列上最小的数
   for(k=0;k<n;k++)                  //找出y列上最小的数及所在的列号 
  if(min>=a[k][y])                  //等于号出现相同的两个数都为最小值(最大值)   
{
  x=k;
  min=a[k][y];
    }
   if(min==max)                    //找到一个鞍点
{
   printf("%d %d",x,y);
   flag=1;
   }
   }
   }
   if(flag==0)
   printf("NONE");
   return 0;
}

2).设计思路

3).本题遇到的困难

解决方法:未考虑n=1的情况和一行或一列出现相同的数字为最大值或最小值
4).程序运行截图

7-2 选择法排序
1).实验代码

#include <stdio.h>
int main(void)	
{
	int a[10];
	int i,n,index,k,t;

	scanf("%d",&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; 
}

2).设计思路

3).本题遇到的问题

解决方法:pta的格式出错,需要仔细仔细再仔细
4).程序运行截图

7-1 冒泡法排序
1).实验代码

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

2).设计思路

3).本题遇到的错误

把空格当成了 导致了格式错误

大问题没有
4).程序运行截图

学习总结

原文地址:https://www.cnblogs.com/xiexin777/p/10579711.html