需要帮助才能使用for循环来完成此学习者
程序:
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int id[] = new int[n];
for(int i=0; i<=n; i++) {
id[i] = scan.nextInt();
}
}
}
输入格式:
第一个输入由与ID数相对应的整数n
组成。
下一个n
输入对应于ID。
输出格式:
输出应显示缺少的Id。
答案 0 :(得分:0)
我只是写一个可以帮助你的功能:
public class Enrollment {
public static void prinMiss(int arr[],int size)
{
int y=arr[0];
//System.out.println(y);
int y1=arr[size-1];
//System.out.println(y1);
int counter=y;
int flag=0;
for(int i=0;i<size;i++)
{
if(arr[i]==counter)
{
//System.out.println(counter);
counter++;
}
else
{
flag=1;
break;
}
}
if(flag==1){
System.out.println(counter);
}
else
System.out.println("Nothing is missing");
}
public static void main(String ars[])
{
Scanner in =new Scanner(System.in);
int n;
n=in.nextInt();
int id[]=new int[n];
for(int i=0;i<n;i++)
{
id[i]=in.nextInt();
}
prinMiss(id,n);
}
}
在上面的 prinMiss 函数中,我假设ID总是按顺序排列,只有1个ID不在序列中。
答案 1 :(得分:0)
试试这个,你可以根据你输入的顺序在数字之间得到缺失。
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int num = 0;
int missingTrack = 0;
System.out.println("Enter number of sequence:");
int n = scan.nextInt();
int id[] = new int[n];
int missing[] = new int[10];
for(int i=0; i<n; i++) {
System.out.printf("Enter number %d:",i+1);
id[i] = scan.nextInt();
}
for(int i=0; i<n; i++) {
//Stop to check when the loop reach the last number in the sequence.
if(i==n-1)
{
break;
}
//Assign the different between the next number to identify the missing number
num = id[i+1]-id[i];
//Loop based on the difference we get from "num"
for(int y = 1;y<num;y++)
{
//Evaluate and store the missing number into the array
missing[missingTrack] = id[i]+y;
missingTrack = missingTrack+1;
}
}
System.out.println("Missing input: ");
for(int i=0; i < missingTrack; i++) {
System.out.print(missing[i]+" ");
}
}
使用双For循环检查并跟踪缺失的数字,希望您能了解如何将其实现到您的方案中。
PS:假设输入的序列按升序排列。如果输入不是按顺序输入,则需要首先进行额外的检查或排序。