• 第四周作业


    ## 7-2 选择法排序 (20 分)

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

    #1.实验代码:

    #include<stdio.h>
      int main(void)
      {
          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]);
            printf("
    ");
          
            return 0;
        }
    #2.流程图:

    #3.运行结果:

    #4.题目中所存在的问题及解决方法:
    我做这个题目是参考书上的写的刚开始不理解op字符然后通过看书和向朋友请教弄清楚了op字符的使用方法。



    ##7-1 找鞍点 (20 分)

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的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

    #1.实验代码:

    1 #include<stdio.h>
     2 int main()
     3 {
     4     int i,j,m,c,n,flag=1;
     5     int a[10][10];
     6     scanf("%d",&n);
     7     for(i=0; i<n; i++){
     8         for(j=0; j<n; j++){
     9             scanf("%d",&a[i][j]);
    10         }
    11     }
    12   for(i=0; i<n; i++){    
    13         m=a[i][0];
    14         c=0;
    15         for(j=1; j<n; j++){
    16           if(m==a[i][j])
    17             {
    18               m=a[i][j];    
    19               c=j;
    20             }
    21             else if(m<a[i][j]){
    22                 m=a[i][j];
    23                 c=j;
    24             }
    25         }
    26         for(j=0;j<n;j++){
    27           if(a[j][c]<m){
    28                 flag=0;
    29             }
    30         }
    31         if(flag==1){
    32             printf("%d %d
    ",i,c);
    33             break;
    34         }
    35         flag=1;
    36     }
    37     if(i==n){
    38         printf("NONE");
    39     }
    40     
    41     return 0;
    42 }
    #2.流程图:

     #3.运行结果:

    #4.解题过程中遇到的问题:

    行与列是一起判断的,运行错误,这样会计算错误不能算出正确的结果;
    我按矩阵的形式输出二维数组a,结果找出的是矩阵的最大数;
    单独列出当n=1时的情况时编译器正确,pta上错误,提示最小规模错误,与题目条件不符。

    #学习总结:

    
    
  • 相关阅读:
    Treap 树堆 容易实现的平衡树
    (转)Maven实战(二)构建简单Maven项目
    (转)Maven实战(一)安装与配置
    根据请求头跳转判断Android&iOS
    (转)苹果消息推送服务器 php 证书生成
    (转)How to renew your Apple Push Notification Push SSL Certificate
    (转)How to build an Apple Push Notification provider server (tutorial)
    (转)pem, cer, p12 and the pains of iOS Push Notifications encryption
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 2/2
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
  • 原文地址:https://www.cnblogs.com/ckl520/p/10577967.html
Copyright © 2020-2023  润新知