我正在使用C和java进行模式编程。我已经为两种具有相同条件的语言编写代码,所以我期待相同的输出,但我没有得到相同的输出。
这是模式程序的C代码
ArrayCache
输出:
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=9;j++)
{
if(j<=(6-i)||j>=(4+i))
printf("*");
else
printf(" ");
}
printf("\n");
}
}
Java代码:
*********
**** ****
*** ***
** **
* *
输出:
public class Main {
public static void main(String [] args) {
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=9;j++)
{
if(j<=(6-i)||j>=(4+i))
System.out.print("*");
else
System.out.println();
}
}
}
}
帮我解决这个问题
答案 0 :(得分:2)
Java版本打印新行而不是C版本中的空格。试试这个。
public class Main {
public static void main(String [] args) {
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=9;j++)
{
if(j<=(6-i)||j>=(4+i))
System.out.print("*");
else
System.out.print(" "); // Prints space
}
System.out.println(); // Prints a newline for each row
}
}
}
答案 1 :(得分:1)
在您的Java程序中,您忘记在C代码中编写与printf(" ");
对应的一行代码。这在Java中就像System.out.print(" ");
尝试修改后的代码:
public class Main {
public static void main(String[] args) {
int i, j;
for (i = 1; i <= 5; i++) {
for (j = 1; j <= 9; j++) {
if (j <= (6 - i) || j >= (4 + i))
System.out.print("*"); // in C printf("*");
else
System.out.print(" "); // in C printf(" ");
}
System.out.println(); // in C printf("\n");
}
}
}
输出:
*********
**** ****
*** ***
** **
* *