输入N个整数,并输出指定的某个整数在这N个整数中的按照由小到大的顺序排列的位次
输出位次为1-N,若输入的整数不在该序列中,输出-1。(我的思路还和使用C语言类似)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int c=0;
int n=sc.nextInt();
int m=sc.nextInt();
int temp = 0;
int a[]=new int[n];
for(int i=0;i<a.length;i++){
a[i]=sc.nextInt();
}
for(int j=0;j<a.length;j++)
{
for (int k=j+1;k<a.length;k++){
if(a[j]>a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
int flag=0;
for(c=0;c<n;c++)
{
flag++;
if(m==a[c])
{
System.out.printf("%d",flag);
break;
}
}
if(c==n)
{
System.out.println(-1);
}
}
}
这样只有部分正确,请问一下错在了哪里
(最好只修改一下循环部分,不要用一些Java定义好的方法,否则我刚学可能看不懂,望体谅)
第一次在CSDN提问 QWQ
应该没错
我觉得排序那一块没问题啊,我又单独写了一个排序的
import java.util.Scanner;
public class sort {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a[]=new int [n];
int i=0;
for(i=0;i<n;i++)
{
a[i]=sc.nextInt();// 读取单个int型数据(循环)
}
int temp=0;
int j=0,k=0;
for(j=0;j<n;j++)
{
for(k=j+1;k<n;k++)
{
if(a[j]>a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
for(int m=0;m<n;m++)
{
System.out.printf("%d",a[m]);
}
}
}
我自己觉得应该是遍历后面有问题。