zoukankan      html  css  js  c++  java
  • PTA4

    这个作业属于哪个课程 C语言程序设计2
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774
    我的课程目标 运用两种排序法解决数组问题
    这个作业在哪个具体方面帮助我实现目标 要求用排序法解题
    参考文献 https://www.cnblogs.com/Good-good-stady-day-day-up/p/9055698.html
    第一题

    H3选择法排序 (20 分)

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

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

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

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



    思路

    一开是我是模仿书上的,但有是后输出不对。
    后来我要全换过来,才对了。
    第二题

    H3找鞍点 (20 分)

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的n阶方阵的鞍点。
    代码

    #include <stdio.h>  
    int main()  
    {   
    	int n,i,j,k,l;
    	int a[6][6];
    	scanf("%d",&n);
        for(i=0; i<n; i++)  {
            for(j=0; j<n; j++)  {  
                scanf("%d",&a[i][j]);  
            }      	
        }
     
        int index=0,T=1;
    	k=0;
    	l=0; 
        if(n==1){
            printf("0 0"); 
        }else{  
            for(i=0; i<n; i++){  
                index=i;   
                for(l=0; l<n; l++) {   
                    if(a[i][k]<=a[i][l]) {  
                        k=l;  
                    }  
                }
                for(j=0; j<n; j++){   
                    if(a[index][k]>a[j][k]){  
                        index=j;  
                        break;  
                    }  
                }  
                
                if(i==index){  
                    T=0;  
                    break;  
                }  
            }  
            if(T==0)	
    		   printf("%d %d",i,k);  
            else 		
    		   printf("NONE");  
        }  
        return 0;  
      
    }
    



    思路

    开是我是先判断行数组中的最大值和列数组中的最小值,在判断下表是否相同,结果怎样一不行
    然后我边判断行中最大值记下标边判断列中最小值记下标在数出下标值

    学习进度条

    周/日期 这周所花时间 代码行数 学到知识点 目前比较迷惑的问题
    3/18-3/22 一天 67 选择排序法 在其中for的循环的运用
  • 相关阅读:
    Mysql 一主两从架构转换成级联复制
    redis安装配置
    SQL语句中----删除表数据drop、truncate和delete的用法
    编译安装apache2.4.28错误
    zabbix3.2.5编译安装部署
    Keepalived 高可用集群实践
    sersync+rsync实时同步备份部署
    LINE学习
    DeepWalk学习
    csv文件的读取
  • 原文地址:https://www.cnblogs.com/huangxing123/p/10575392.html
Copyright © 2011-2022 走看看