2019第四周作业

选择法排序 
本题要求将给定的n个整数从大到小排序后输出。
 
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
 
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6

输出样例:

7 6 5 1

实验代码:

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

设计思路:

![](https://img2018.cnblogs.com/blog/1581771/201903/1581771-20190322214421583-193386150.png)
 
本题调试过程中碰到的问题以及解决方法:
没有特别难的问题,上课听了这题应该都会
 
运行结果截图:
![](https://img2018.cnblogs.com/blog/1581771/201903/1581771-20190322214739154-1085193921.png)
 
找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
 
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
 
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
 
输入样例1:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

2 1

输入样例2:

2
1 7
4 1

输出样例2:

NONE

实验代码:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    
    int a[6][6],rowmax[6],max;
    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
         
              scanf("%d",&a[i][j]);
              max=a[i][0];
              for(int j=0;j<n;j++)
              if(max<=a[i][j])
              {
                  max=a[i][j];
                  rowmax[i]=j;
              }
    }

    int    temp=0,row;    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
           if(a[j][rowmax[i]]<a[i][rowmax[i]])
           {
               temp=0;
               break;
           }
           else
           {
            temp++;    
           }
         if(temp==n)
         {
          row=i;
          break;    
         }
   }
    if(temp==n)
    {
        printf("%d %d",row,rowmax[row]);
    }
    else
    {
        printf("NONE");
    }
        
    return 0;
} 

设计思路:

![](https://img2018.cnblogs.com/blog/1581771/201903/1581771-20190322221148006-766740186.png)
 
本题调试过程中碰到的问题及解决方法:
这里多亏了一班助教视频的帮助!!!多谢!多谢!多谢!
 
运行结果截图:
![](https://img2018.cnblogs.com/blog/1581771/201903/1581771-20190322221733014-1110560322.png)
![](https://img2018.cnblogs.com/blog/1581771/201903/1581771-20190322221737318-423216514.png)
 
耗时:4个小时
心得:这次作业也让自己知道了哪里有缺点,希望以后更加努力做出更难的题目。
 
 

猜你喜欢

转载自www.cnblogs.com/tb-0706/p/10581910.html