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;   
}

1580817-20190321221515460-434787402.png
1580817-20190321221538653-1951995511.png
思路
1580817-20190321222327588-1094398522.png
一开是我是模仿书上的,但有是后输出不对。
后来我要全换过来,才对了。
第二题

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;  
  
}

1580817-20190321222832063-634716891.png
1580817-20190321222848300-78259882.png
思路
1580817-20190321223748852-2004782799.png
开是我是先判断行数组中的最大值和列数组中的最小值,在判断下表是否相同,结果怎样一不行
然后我边判断行中最大值记下标边判断列中最小值记下标在数出下标值

学习进度条

周/日期这周所花时间代码行数学到知识点目前比较迷惑的问题
3/18-3/22一天67选择排序法在其中for的循环的运用

转载于:https://www.cnblogs.com/huangxing123/p/10575392.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值