zoukankan      html  css  js  c++  java
  • 第四周编程总结

    这个作业属于哪个课程

    C语言程序设计基础

    这个作业要求在哪里

    https://edu.cnblogs.com/campus/zswxy/MS/homework/2779

    我在这个课程的目的

    学会使用数组

    这个作业具体在哪方面帮助我实现目标

    选着排序法

    参考文献

    C语言程序设计基础

     

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

    本题要求将给定的n个整数从大到小排序后输出。

    输入格式:

    输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

    输出格式:

    在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    7 6 5 1

     一、实验代码

    #include<stdio.h>
    int main(void)
    {
        int i,k,n,max,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;
    }

    流程图

     

     错误截图

     经过调试发现是输出时,最后的for语句中的"i=0"应为“i=1”,说到底这也是因为不够严谨造成的。

    7-1 找鞍点 (20 分)

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

    本题要求编写程序,求一个给定的n阶方阵的鞍点。

    输入格式:

    输入第一行给出一个正整数n(1n6)。随后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(void)
    {
        int n,i,j,f,r,c;
        scanf("%d",&n);
        int a[6][6];
        for(i=0;i<n;i++)
           for(j=0;j<n;j++)
           scanf("%d",&a[i][j]);
           
        for(i=0;i<n;i++){
            r=i;
           for(j=0;j<n;j++){
            if(a[r][j]>=a[r][c])
              c=j;
        }
             for(int l=0;l<n;l++){
                   if(a [l][c]<a [r][c]){
                       f=0;
                       break;
                   }           
                else
                     f=1;
               }
               if(f==1)
               break;
                else
                    continue;
                  
        }
            if(f==1)
               printf("%d %d",r,c);
            else
               printf("NONE");
        
        return 0;
    }

    设计思路

    首先找出行最大值,然后再在“找到的最大值”的那一列上比较,看其是否是那一列上的最小值

    错误截图

     这个错了的主要原因是没有考虑到相等的情况

     这个题用了挺久的,主要原因就是对循环结构的不够熟练

     这周主要学习选择排序法

    
    

    这个作业属于哪个课程

    C语言程序设计基础

     

    这个作业要求在哪里

    https://edu.cnblogs.com/campus/zswxy/MS/homework/2779

     

    我在这个课程的目的

    学会使用数组

     

    这个作业具体在哪方面帮助我实现目标

    选着排序法

     

    参考文献

    C语言程序设计基础

     

  • 相关阅读:
    C#新特性
    蛋清打发奶油状
    VS 2015 开发Android底部导航条----[实例代码,多图]
    使用微软的MSBuild.exe编译VS .sln .csproj 文件
    双色球基础分析--SQL
    Windows 7 中的 God Mode
    Free Online SQL Formatter
    Windows 特殊文件夹
    常用DNS列表(电信、网通)
    C语言词法分析:C#源码
  • 原文地址:https://www.cnblogs.com/liuz98/p/10565269.html
Copyright © 2011-2022 走看看