输入一个字符,用它构造一个边长为5的三角形圣诞树。 
   数据范围:保证输入的字符是一个 char 类型的值 
                                        import java.io.IOException;
public class Main{
    public static void main(String[] args) throws IOException{
        char c=(char)System.in.read();
        int n = 5;
        for(int i = 1; i <= n; i++){   // 控制行数
            for (int m = 1; m <= n-i; m++) { // 左侧空格
                System.out.printf(" ");
            }
            for (int j = 1; j <= 2*i-1; j++) {
                if ((j+1)%2 == 0){  // 基数输出1,偶数输出空格
                    System.out.print(c);
                }else {
                    System.out.printf(" ");
                }
            }
            System.out.println();
        }
    }
} #include <bits/stdc++.h> using namespace std; int main() { //取中值,用奇偶性质 char ch;cin>>ch; int mid = 5,left = 0,right = 0; for(int i = 1 ; i < 6 ;i++){ left = mid-i+1; right = mid+i-1; for(int j = 1 ; j < 10;j++){ if( j >=left && j <= right){ if(i%2!=0){ if(j%2!=0)cout<<ch; else cout<<' '; }else{ if(j%2==0)cout<<ch; else cout<<' '; } }else cout<<' '; } cout<<endl; } }
//===========================
// char_pyramid.cpp
// 输入:一个字符
// 输出:字符金字塔
//===========================
#include <bits/stdc++.h>
//---------------------------
int main() {
    
    char a;
    scanf("%c", &a);
    
    printf("    %c\n", a);
    printf("   %c %c\n", a, a);
    printf("  %c %c %c\n", a, a, a);
    printf(" %c %c %c %c\n", a, a, a, a);
    printf("%c %c %c %c %c\n", a, a, a, a, a);
    
    return 0;
} 哈哈哈
                                                                                    #include <stdio.h>
void solve(char c);
int main()
{
	char c;
	scanf("%c",&c);
	getchar(); //过滤换行符
	solve(c);
	return 0; 
}
void solve(char c)
{
	int i, j;
	for(i=0; i<5; i++)
	{
		for(j=0; j<4-i; j++)
			printf(" ");
		for(j=0; j<i+1; j++)
			printf("%c ",c);
		printf("\n");
	}
} #include <iostream>
int main() {
    char ch = '\0';
    std::cin >> ch;
    uint32_t cows = 5;
    uint32_t cols = 2 * cows - 1;
    uint32_t iNums = 1;
    for (uint32_t i = 0; i < cows; ++i) {
        uint32_t spaceNums = cows - i - 1;
        for (uint32_t j = 0; j < spaceNums; ++j) {
            printf(" ");
        }
        for (uint32_t j = 0; j < iNums; ++j) {
            printf("%c ", ch);
        }
        iNums++;
        printf("\n");
    }
} void Jzt(char a){
int i=0; //控制行数
for(i=0;i<5;i++){ //打印5行
int j=0; //控制空格数量
for(j=4-i;j>0;j--){
printf(" ");
}
int k=0; //控制打印的字母数量
for(k=0;k<=i;k++){
printf("%c ",a);
}
printf("\n"); //每行打印完后换行
}
}
  
 
int main(){
char a;
scanf("%c",&a); //输入想要打印的内容
Jzt(a); //金字塔函数
return 0;
}
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1这样的数组大家肯定都会打印,就是每一行打印固定的 [ 1 + " " ],那么这样一看其实就给前面打印空格就好了,第一行打印4个,第二行打印三个......
Scanner sc =  new Scanner(System.in);
        String str = sc.next();
        int key = 4;//定义空格打印
        for (int i = 0; i < 5; i++) {
            for(int j = key; j > 0; j--){
                System.out.print(" ");
            }
            //这里是第一步,就是打印字符数组,现在给前面加空格
            for (int j = 0; j < i + 1; j++) {
                System.out.print(str + " ");
            }
            key--;
            System.out.println();
        }
    }//BC12 字符金字塔 #include<stdio.h>
int main()
{
    char a=0;
    scanf("%c",&a);
    int i=0;
    for(i=1;i<=5;i++)
    {
        int j=0;
        for(j=1;j<=(5-i);j++)
            printf(" ");
        int s=0;
        for(s=1;s<=i;s++)
            printf("%c ",a);
        printf("\n");
    }  
    return 0;
}
/*
    1    
   1 1   
  1 1 1  
 1 1 1 1 
1 1 1 1 1 
*/
 最开始没有过是因为题设使用数字输入,而用例又用字符输入。改进后这版可以直接用于答题。这题思路很简单,找到行数、空格数和字符数之间的关系就可以很容易写出循环的条件。有个tip给大家说一下,就是我们输出的时候,只需要输出显示出的字符和字符左边的空格就足够了,右边自然会打印空格。
                                                                                    import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        char c=scanner.nextLine().charAt(0);
        System.out.println("    "+c);
        System.out.println("   "+c+" "+c);
        System.out.println("  "+c+" "+c+" "+c);
        System.out.println(" "+c+" "+c+" "+c+" "+c);
        System.out.println(c+" "+c+" "+c+" "+c+" "+c);
    }
}