gpt4 book ai didi

java - 尝试设置数组元素约束

转载 作者:行者123 更新时间:2023-12-02 00:42:23 26 4
gpt4 key购买 nike

1.输出:打印sum除以最大元素后的余数。2.约束条件:1<=n<=100; 0<=A[i]<=1000

我需要这段代码来验证数组元素,如下所示:伪代码:if (arr_elmt>=0 and arr_elmt<=1000) ->然后执行后续命令。 else ->停止程序,即使其他元素服从约束

3.

import java.util.Scanner;
public class MyClass {

public static void main(String args[]) {

Scanner val = new Scanner(System.in);
System.out.print("Enter no of values:");

int n;
int A[] = new int[n=val.nextInt()];
//First constraint
if(n>=1 && n<=100)
{
int i=0;
for(i=0;i<A.length;i++)
{
A[i]=val.nextInt();
}

for(i=0;i<A.length;i++)
{ //Second constraint
if(A[i]>=0 && A[i]<=1000)
{

int sum=0;
//Using for-each loop to print array values and get total sum
for(int t:A)
{
System.out.print(t+" ");
sum+=t;
}
//To get largest value
int largest=A[0];
for(i=0;i<A.length;i++)//i=1 can work
{
if(A[i]>largest)
{
largest=A[i];
}
}
//To get and print remainder
int rem;
rem=sum%largest;
System.out.print("\n"+ rem);

}
}
}
}
}
  • 例如:输入:3; 值:2988 67 5。
  • 我预计会因 2988>1000 而出现错误,但代码仍然运行并给我输出!得到的输出:(2988+67+5)mod(2988)

    最佳答案

    嗨,你的问题是,当发现与你的第二个约束不匹配的数字时,你没有指定程序应该停止(或做任何你想做的事情)。

    因此,现在当与 2688 的第二个约束不匹配时,它会继续迭代到第二项并继续执行其余代码。

    因此,要使程序在第二个约束不匹配时结束,您应该添加类似的内容

    import java.util.Scanner;
    public class test {

    public static void main(String args[]) {

    Scanner val = new Scanner(System.in);
    System.out.print("Enter no of values:");

    int n;
    int A[] = new int[n=val.nextInt()];
    //First constraint
    if(n>=1 && n<=100)
    {

    for(int i=0;i<A.length;i++)
    {
    A[i]=val.nextInt();
    }

    for(int i=0;i<A.length;i++)
    { //Second constraint loop through all elements of A[]
    // if one of it does not obey constraint exit the program

    if(A[i]<=0 || A[i]>=1000) // notice here I change '>'
    {
    System.exit(0); // this else is attached to your second constraint
    }
    }

    for(int i = 0; i < A.length; i++){
    int sum=0;
    //Using for-each loop to print array values and get total sum
    for(int t:A)
    {
    System.out.print(t+" ");
    sum+=t;
    }
    //To get largest value
    int largest=A[0];
    for(int j=0;j<A.length;j++)//i=1 can work
    {
    if(A[j]>largest)
    {
    largest=A[j];
    }
    }
    //To get and print remainder
    int rem;
    rem=sum%largest;
    System.out.println(rem);

    }
    }
    }
    }

    关于java - 尝试设置数组元素约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57924999/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com