嘿伙计们,我必须为课程编写一个程序,要求我根据销售人员当月销售的汽车数量生成一个条形图。一个例子是:
Pam XXXX
Leo XXXXXX
我几乎在那里,但并不完全。截至目前,我可以在销售人员名称旁边找到一个X,但其他任何一个都在不同的行下面打印。
Pam X
X
X
如果你可以帮助我在同一条线上获得其他X,我会非常感激。感谢您的投入!
import java.util.Scanner;
public class BarGraph
{
public static int Pam = 0;
public static int Leo = 0;
public static int Kim = 0;
public static int Bob = 0;
public static Scanner kb = new Scanner(System.in);
public static void main(String args[])
{
System.out.println("Enter number of cars sold by Pam ");
Pam = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Leo ");
Leo = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Kim ");
Kim = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Bob ");
Bob = kb.nextInt();
kb.nextLine();
System.out.print("Pam "); pamsCars();
System.out.print("Leo "); leosCars();
System.out.print("Kim "); kimsCars();
System.out.print("Bob "); bobsCars();
}
public static void leosCars()
{
for(int i=0; i < Leo; i++)
{
printX();
}
}
public static void kimsCars()
{
for(int i=0; i < Kim; i++)
{
printX();
}
}
public static void pamsCars()
{
for(int i=0; i < Pam; i++)
{
printX();
}
}
public static void bobsCars()
{
for(int i=0; i < Bob; i++)
{
printX();
}
}
public static void printX()
{
System.out.println("X");
}
}
答案 0 :(得分:4)
您正在使用System.out.println("X");
这会自动将换行符添加到字符串的末尾。
而是使用System.out.print("X");
打印彼此相邻的X.
答案 1 :(得分:1)
你不能使用
System.out.printf("%s",x);
以及?
或
System.out.printf("%n%s",x);
我自己没有尝试过这个循环,但我很确定其中一个也可以作为替代方案......%n会给你与println相同的结果,只要你去printf和%n ...当你使用println时,它与\ n的转义序列相同。
我刚刚在课堂上了解到这一点,所以我认为我分享了我的基本知识...下周中期,所以我有编程热。
答案 2 :(得分:0)
在printX函数中使用print
代替println
具体。
因为println打印并添加了break(换行符)
答案 3 :(得分:0)
public static void printX()
{
System.out.println("X"); // println() puts newline character.. use print()
}
答案 4 :(得分:0)
进行以下更改:
System.out.print("Pam "); pamsCars();System.out.println("");
和
public static void printX()
{
System.out.print("X");
}
正如其他人所说,“println()”方法在行的末尾添加了一个“\ n”。
答案 5 :(得分:0)
更改printX()方法,不要打印换行符,并更改printCar()签名以接受要打印的X的名称和数量。
public static void printX()
{
System.out.print("X");
}
public static void printCars(String name, int num)
{
System.out.print(name);
for(int i=0; i < num; i++)
{
printX();
}
System.out.println();
}
现在你可以像
一样打电话给他们printCars("Pam ",Pam));
printCars("Bob ",Bob));
答案 6 :(得分:0)
以下情况如何(抱歉没有经过测试,因此原则上只考虑了更多关于循环替代的方法)。
当然缺点是用户可以输入超过10个。
如果用户输入10,000又会怎么样? (你真的想打印10,000张X&#39> )。也许要考虑一下。
import java.util.Scanner;
public class BarGraph
{
public static int Pam = 0;
public static int Leo = 0;
public static int Kim = 0;
public static int Bob = 0;
public static Scanner kb = new Scanner(System.in);
//Assume max sales of 10
public static final String maxsales = "XXXXXXXXXX"; //+++++NEW
public static void main(String args[])
{
System.out.println("Enter number of cars sold by Pam ");
Pam = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Leo ");
Leo = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Kim ");
Kim = kb.nextInt();
kb.nextLine();
System.out.println("Enter number of cars sold by Bob ");
Bob = kb.nextInt();
kb.nextLine();
printCars("Pam",pam); //+++++NEW
printCars("Leo",leo); //+++++NEW
printCars("Kim",kim); //+++++NEW
printcars("Bob",bob); //+++++NEW
}
//+++++NEW All other methods/functions replaced by this one
public static void printCars(String person, int sales) {
system.out.println(person + " " + maxsales.substr(sales));
}
}
答案 7 :(得分:-2)
int n = 20;
for(int i = 0; i <= n; i++) {
System.out.print(" " + i);
}