7-6 N个数的排序与查 (10 分)(PTAjava测试题)

img

#这个题我一开始是使用C语言写的(C语言写的顺手一点),然后得到满分的C语言代码后,自己全部翻译成java代码,代码如下。
#其中排序时使用了选择排序(没有用别的高效排序是因为,,不会,自己也明白还是要学会使用高效排序方法 ε=(´ο`*)唉)
PTA | 程序设计类实验辅助教学平台 千名教师建设,万道高质量题目,百万用户拼题的程序设计实验辅助教学平台 https://pintia.cn/problem-sets/1431533418782228480/problems/1431533584004251655
这是C语言

```c
#include<stdio.h>
int main()
{
    int N,temp,M;
    scanf("%d",&N);     //要输入的数量
    int a[N],b[N];          
    for(int i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    } 
    getchar();
    int ii,tt;
    for(ii=0;ii<N;ii++)            //选择排序 
    {
        for(tt=0;tt<ii;tt++)
        {
            if(a[ii]<a[tt])
            {
                temp=a[tt];
                a[tt]=a[ii];
                a[ii]=temp;
            }
        }
    }
    scanf("%d",&M);            //对数组排序后从小到大查找 
    for(int jj=0;jj<=N;jj++)
    {
        if(M==a[jj])    
        {
            printf("%d",jj+1);
            break;
        }
        if(jj==N)    printf("-1");
    }
    return 0;
}

这是由C语言傻瓜式翻译的java语言

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        
    int N,temp,M;
    int flag=0;
    Scanner sc = new Scanner(System.in);
    N=sc.nextInt();
    int[] arr=new int[N];
    for(int i=0;i<N;i++)
    {
        arr[i]=sc.nextInt();
    } 
    int ii,tt;
    for(ii=0;ii<N;ii++)
    {
        for(tt=0;tt<ii;tt++)
        {
            if(arr[ii]<arr[tt])
            {
                temp=arr[tt];
                arr[tt]=arr[ii];
                arr[ii]=temp;
            }
        }
    }
/*    for(int j=0;j<N;j++)
    {
        printf("%d",a[j]);
    }    */
    M=sc.nextInt();
    for(int q=0;q<N;q++)
    {
        if(M==arr[q])
        {
            flag+=1;
        }
    }
    if(flag==0)        System.out.println("-1");
    else {
        for(int jj=0;jj<=N;jj++)
        {
            if(M==arr[jj])    
            {
                System.out.println(jj+1);
                break;
            }
            if(jj==N)
                System.out.println("-1");
        }
    }

}
}


所以你的问题是什么?看你的代码规范我很难受,差点想开除你

感觉下面有些复杂了
这样更简洁一些

 int num = in.nextInt();
        int flag = 0;
        
        for(int m = 0;m<n;m++)
        {
            if(num==a[m])
            {
                System.out.println(m+1);
                flag ++;
                break;
            }
        }
        if(flag==0)
            System.out.println("-1");
        

马老师牛批