当前位置: 首页 > 知识库问答 >
问题:

字符串中的正数和负数

邬朗
2023-03-14

我必须制作一个程序,允许用户输入整数,直到按下“0”。程序必须打印:1)输入数字的总数2)正数3)正数的平均数4)负数5)负数的总和

到目前为止,我所能做的就是“输入直到按下‘0’”,并找到输入的数字的数量,这对我和我的编程技能来说是非常重要的。我很难找出这个数字是正数还是负数。也许我没有正确地比较他们,所以如果我能得到一些高级人员的帮助,我会很高兴。

这是我到目前为止的代码:

import java.io.*; 

class Nums { 
  public static void main(String args[])  
    throws IOException 
  { 
    BufferedReader br = new BufferedReader(new 
                            InputStreamReader(System.in)); 
    String str;
    int EnteredNumbers = -1;
    int Positive = 0;
    int Negative = 0;
    int NegativeSum = 0;
    double AveragePositive = 0;

    System.out.println("Enter '0' to quit."); 
    System.out.println("Enter Numbers: "); 
    do { 
      EnteredNumbers++;
      str = br.readLine();

    } while(!str.equals("0")); 
      System.out.println("You have have entered "+EnteredNumbers+ " numbers!");
      System.out.println("You have have entered "+Positive+ " Positive numbers!");
      System.out.println("The Average of the Positive Numebers is "+AveragePositive+ "!");
      System.out.println("You have have entered "+Negative+ " Negative numbers!");
      System.out.println("The Sum of the Negative numbers is "+NegativeSum+ "!");
  } 
}

共有3个答案

谢裕
2023-03-14

希望下面的代码能达到你想要的效果

import java.io.*; 

class Nums { 
  public static void main(String args[])  
    throws IOException 
  { 
    BufferedReader br = new BufferedReader(new 
                            InputStreamReader(System.in)); 
    String str;
    int EnteredNumbers = -1;
    int Positive = 0;
    int Negative = 0;
    int NegativeSum = 0;
    double AveragePositive = 0;
    double PositiveSum = 0;

    System.out.println("Enter '0' to quit."); 
    System.out.println("Enter Numbers: "); 
    do { 
      EnteredNumbers++;
      str = br.readLine();
      if(Integer.parseInt(str) > 0){
          Positive++;
          PositiveSum = PositiveSum + Integer.parseInt(str);
          AveragePositive = PositiveSum/Positive;
      }
      if(Integer.parseInt(str) < 0){
          Negative++;
          NegativeSum = NegativeSum + Integer.parseInt(str);
      }

    } while(!str.equals("0")); 
      System.out.println("You have have entered "+EnteredNumbers+ " numbers!");
      System.out.println("You have have entered "+Positive+ " Positive numbers!");
      System.out.println("The Average of the Positive Numebers is "+AveragePositive+ "!");
      System.out.println("You have have entered "+Negative+ " Negative numbers!");
      System.out.println("The Sum of the Negative numbers is "+NegativeSum+ "!");
  } 
}
谯嘉懿
2023-03-14

通过将字符串解析为int进行检查

Integer.parseInt(str)>0  //positive number
Integer.parseInt(str)<0 //negative



do { 
      EnteredNumbers++;
      str = br.readLine();
      int number= Integer.parseInt(str);
      if(number>0){  //do positive stuffs}
      else if(number<0){//do negative stuffs}
    } while(!str.equals("0")); 
岑畅
2023-03-14

首先,正如Integer.parseInt在java中用于从String转换为int。其次,您还需要有一个额外的变量来存储和累积正数的总数。我添加了一个try-cat异常块来处理错误。

这里有一个代码供参考。

import java.io.*; 

public class Nums { 
  public static void main(String args[])  
    throws IOException 
  { 
    BufferedReader br = new BufferedReader(new 
                            InputStreamReader(System.in)); 
    String str;
    int EnteredNumbers = -1;
    int Positive = 0;
    int Negative = 0;
    int NegativeSum = 0;
    int PositiveSum = 0; // Added extra variable
    double AveragePositive = 0;

    System.out.println("Enter '0' to quit."); 
    System.out.println("Enter Numbers: "); 
   try{
    do { 
      EnteredNumbers++;
      str = br.readLine();

    int num = Integer.parseInt(str);


    if (num>0)
      {
        Positive++;
        PositiveSum+=num;
      }
      else if (num<0)
      {
        Negative++;
        NegativeSum+=num;
      }
    } while(!str.equals("0")); 
    AveragePositive = (double)PositiveSum/(double)Positive;
      System.out.println("You have have entered "+EnteredNumbers+ " numbers!");
      System.out.println("You have have entered "+Positive+ " Positive numbers!");
      System.out.println("The Average of the Positive Numebers is "+AveragePositive+ "!");
      System.out.println("You have have entered "+Negative+ " Negative numbers!");
      System.out.println("The Sum of the Negative numbers is "+NegativeSum+ "!");
    }
    catch (java.lang.NumberFormatException e)
    {
        System.out.println("Wrong format");
    }  

} 
}

如果没有错误,则输出

Enter '0' to quit.
Enter Numbers: 
1
5
5
-5
-5
0
You have have entered 5 numbers!
You have have entered 3 Positive numbers!
The Average of the Positive Numebers is 3.6666666666666665!
You have have entered 2 Negative numbers!
The Sum of the Negative numbers is -10!
 类似资料:
  • 问题内容: 我是一名刚从C ++转到Java的学生。 在Java中,为String和Char数组定义单独的数据类型的主要原因可能是什么? 两者有什么区别? 由于我只学习过C ++,所以直到现在我仍对它们有同感。请尽可能澄清。 问题答案: 是一成不变的。数组不是。字符串是在下面用char数组实现的,但是每次您尝试对其进行修改(例如,使用串联,替换等)时,它都会为您提供一个 新 对象。 因此,它表现为

  • 本节我们将了解最基础的数据类型,数字和字符串。打开你的Python REPL并写出以下语句。 >>> a = 2 >>> type(a) <class 'int'> >>> b = 2.5 >>> type(b) <class 'float'> 这样你就定义了两个变量(“a”和“b”)它们保存了一些数字:变量“a”保存的是一个整数,而“b”保存的是一个实数。 我们现在可以使用刚才定义的两个变量或

  • 为什么数组不相等?我希望返回原始的字节数组。

  • 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似: 单双引号的区别: 双引号里可以有变量,单引号则原样输出; 双引号里可以出现转义字符,单引号则原样输出; 单引号字串中不能出现单引号。 拼接字符串 #!/bin/bash str1='i' str2='love' str3

  • 问题内容: 当尝试取一个整数并将其前缀为“ b”并将其转换为字符串时,出现此错误: 与此功能有关: 问题答案: name = ‘b’ + str(num) 要么 如S.Lott所述,Python 3及更高版本不建议使用混合运算符’%’。我从INTERCAL那里窃取了“混合”这个名称,但这就是我谈论它的方式,并希望至少在印刷品上看到它一次(就像渡渡鸟一样),它从地球表面消失了。

  • 你会得到一个由n个整数组成的数组,包括负整数和正整数。您需要将它们划分为两个不同的数组,而不直接将任何元素与0、1、-1或任何其他固定值进行比较。将0视为正数。如果arr[0]是正数,则在第一行输出中按给定顺序打印所有正数,然后在第二行输出中按给定顺序打印所有负数,反之亦然。注意:如果数组只包含正数,那么在第一行打印正数,在第二行打印“数组没有负数”。如果数组只包含负数,则在第一行打印负数,在第二