目前我只能显示奇数1 3 5 7 9.但是,我想显示1到99的所有奇数,包括9行和5列。我可以知道如何从11开始显示,而不仅仅是9行1 3 5 7 9。
下面是我坚持使用的代码。
public static void main(String args[])
{
for (int i=1; i<=9; i++)
{
for (int j=1; j<=10; j++)
{
if (j%2 !=0)
System.out.print(j + " " );
}
System.out.println();
}
}
答案 0 :(得分:1)
首先你需要计算你的号码,试试
for (int i=0; i<=9; i++)
{
for (int j=1; j<=10; j++)
{
int number = j+i*10
if (number%2 !=0)
System.out.print(number + " " );
}
System.out.println();
}
但是你可以通过单循环解决这个问题
for (int i=1; i<=99; i++)
{
if (number%2 !=0)
System.out.print(number + " " );
if (number%10 ==0)
System.out.println();
}
答案 1 :(得分:1)
for ( i = 1; i < 100; i+=2 ) {
System.out.print(i);
}
System.out.println();
答案 2 :(得分:0)
也许这会有所帮助:
public static void main(String args[])
{
for (int j = 0; j < 10; j++)
{
for (int i = 1; i <= 9; i++)
{
int c = j * 10 + i;
if (c % 2 !=0)
System.out.print(c + " " );
}
System.out.println();
}
}
只有一个循环的其他替代方案:
public static void main(String args[]) {
for (int j = 1; j <= 99; j += 2) {
System.out.print(j + " ");
if ((j + 1) % 10 == 0) {
System.out.println();
}
}
}
答案 3 :(得分:0)
您的代码现在打印了9行:
1 3 5 7 9
这种情况正在发生,因为你的内部循环总是在1到9之间循环。
你应该尝试类似的东西:
int counter = 0;
for(int i=1; i<=99; i++) {
if(i%2 != 0) {
System.out.print(i + " ");
counter++;
}
if(counter == 5) {
System.out.println();
counter = 0;
}
}
这将打印:
1 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
51 53 55 57 59
61 63 65 67 69
71 73 75 77 79
81 83 85 87 89
91 93 95 97 99
答案 4 :(得分:0)
public static void main(String args[])
{
for (int i=1; i<=99; i++)
{
if (i%2 !=0)
System.out.print(i + " " );
if(i%10 == 0)
System.out.println();
}
}
此代码允许您使用1循环执行所需操作,这比使用嵌套循环更有效。
这将循环显示1-99中的每个数字,如果是奇数则打印。如果数字是10的倍数,那么它将打印一个新行。
答案 5 :(得分:0)
如果要使用嵌套的forloop,则必须使用两个迭代变量来构建数字。在内部for循环中你根本不使用i。因此,只有1 3 5 7 9被打印9次。对于修补程序尝试使用类似的东西
System.out.print(i + j + " " );
System.out.print(j + " " );
答案 6 :(得分:0)
for (int i = 1; i <= 99; i += 2)
System.out.printf("%d%s", i, i % 10 == 9 ? "\n" : " ");
int c =0;
for (int i = 1; i <= 99; i++)
if ((i & 1) == 1) {
c++;
System.out.printf("%d%s", i, c % 5==0 ? "\n" : " ");
}
两个输出相同,连续5个奇数,没有尾随空格。
答案 7 :(得分:0)
使用此功能,您可以根据需要轻松设置列数。
我们使用单个循环。
<强>代码:强>
int columns = 5;
int start = 1;
int end = 99;
// iterate through every seconds i.
for (int i = start; i <= end; i += 2) {
System.out.printf("%-4d", i);
// if we have displayed enough words, start a new line
if (i % (2 * columns) == 0) {
System.out.println();
}
}
<强>输出:强>
1 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
51 53 55 57 59
61 63 65 67 69
71 73 75 77 79
81 83 85 87 89
91 93 95 97 99
但是,如果我正确理解你的问题,你想显示5列9行的数字?如果我们只打印1到99之间的数字,这是不可能的。有5列,数字1到99,你将获得10行。