zoukankan      html  css  js  c++  java
  • 第四周作业

    7-1 找鞍点 (20 分)

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

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

    输入格式:

    输入第一行给出一个正整数n(1n6)。随后n行,每行给出n个整数,其间以空格分隔。

    输出格式:

    输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

    实验代码:

    #include<stdio.h> 
    int main(void) 
    {      
      int n,i,j,k=0,l=0;
      int temp,flag=1;
      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++){ 
                temp=i;  
                for(l=0;l<n;l++) {  
                    if(a[i][k]<=a[i][l]) { 
                        k=l; 
                    } 
                } 
                for(j=0;j<n;j++){  
                    if(a[temp][k]>a[j][k]){
                        temp=j; 
                        break; 
                    } 
                } 
               
                if(i==temp){
                    flag=0; 
                    break; 
                } 
            } 
            if(flag==0)
            printf("%d %d",i,k); 
            else       
            printf("NONE"); 
        } 
        return 0;
    }

    设计思路:<1>定义变量,按照题目要求输入数字

                      <2>找出每行最大的数字,再进行比较该数字是否为该列最小的数字,

                      <3>测试最开始定义的flag是否为0,如果为0则为鞍点,如果不是则输出none

    遇到的问题及解决办法:对于行与列的比较不会,问室友以及看大佬的代码自己思考解决。

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    7 6 5 1
    实验代码:#include<stdio.h>
    int main(void)
    {
      int index,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-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;
      }
      for(i=n-1;i>0;i--){
        printf("%d ",a[i]);
      }
      printf("%d",a[0]);
     
      return 0;
    }
    设计思路:<1>定义变量(此处n值可取多个因此用数组知识)
    <2>在for语句之中进行运算,输出。

    遇到的问题及解决方法;对于空格的理解不到位,室友帮忙解决。

    
    
  • 相关阅读:
    Struts2框架
    读者写者问题
    哲学家就餐问题
    理解中断
    理解处理机调度
    理解死锁
    理解进程
    Linux CentOS 6.7 挂载U盘
    家庭-养老院模型理解IOC和DI
    Bash基础
  • 原文地址:https://www.cnblogs.com/FLZ1208/p/10581160.html
Copyright © 2011-2022 走看看