这样可以
public static void main(String[] args) {
String[] temps = {"A","B","C","D","E","F","G"};
for (int i = 1; i <= temps.length; i++) {
for(int j = temps.length; j > i; j--){
System.out.print(" ");
}
for (int j = 0; j < i*2-1; j++) {
System.out.print(temps[i-1]);
}
System.out.println();
}
}
运行结果
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG
参考如下:
输出下列图形:
A
ABC
ABCDE
ABCDEFG
ABCDEFGHI
ABCDEFGHIJK
ABCDEFGHIJKLM
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOPQRS
分析:
该图形一共有
10
行,这次要考虑每行中,先输出若干个空格,所以,其外循环
为:
for( i=1;i<=10;i++){
输出若干个空格
输出若干字符
换行
}
如果要输出
A
起头依序的
n(n<27)
个字母,可以为:
for(ch='A';ch<'A'+n;++ch)
printf("%c",ch);
有句口诀:尖向上,改"for"里面的表达式,尖向下,改变量。
static void Main(string[] args)
{
char c = 'A'; //初始字符
int s = 6; //设定行数
for(int i = 0;i{
for (int k = 0; k < s-i;k++ )//控制空格输出
{
Console.Write(' ');
}
for (int j = 0; j < 2*i+1; j++)//控制字符输出
{
System.Console.Write(c);
}
Console.WriteLine();
}
Console.ReadLine();
}
这个是我刚弄的代码 你看看吧,不是java 的,但应该能看懂,主要是这几个循环
public static void main(String[] args) {
for (int i = 0, j = 0, lines = 19; i <= lines && j <= lines; j++) {
System.out.print((lines / 2) >= i ? (((lines / 2) >= j - i && (lines / 2) <= j + i) ? (char) (65 + i) : " ")
: (((lines / 2) >= i - j && (lines / 2) + (lines - i) > j) ? (char) (65 + i) : " "));
if (j == lines) {
j = -1;
i++;
System.out.println();
}
}
}
自己运行看看