多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。
针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。
4
* * * * * * * * *
5
* * * * * * * * * * * *
#include<stdio.h> int main() { int num = 0; while(scanf("%d",&num)!=EOF) { getchar(); for(int i = 0;i < num;i++) { for(int j = 0;j < num;j++) { if(j == 0 || i == num - 1 ||i == j) printf("* "); else printf(" "); } printf("\n"); } } return 0; }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count; boolean flag; while(scanner.hasNext()) { count = scanner.nextInt(); for(int i=0;i<count;i++) { for(int j=0;j<=count*2;j++) { //条件是精髓 flag = i==count-1?j%2==0:j==0||(j%2==0&&j/2==i); if(flag) { System.out.printf("*"); }else { System.out.printf(" "); } } System.out.println(); } } } }
#include<stdio.h> int main() { int n; while( ~scanf("%d",&n) ) { for( int i = 0 ; i < n ; i++ ) { if( i == 0 ) printf("*\n"); else if( i == n - 1 ) { for( int j = 0 ; j < n ; j++) printf("* "); printf("\n"); } else { for( int m = 0 ; m < 2 * i + 1 ; m++ ) { if( m == 0 || m == 2 * i ) printf("*"); else printf(" "); } printf("\n"); } } } return 0; }
#include <stdio.h> int main(){ int n; while(~ scanf("%d", &n)){ for(int i = 0; i < n; i++){ for(int j = 0; j <= i; j++){ if(i >= 2 && i <= n - 2 && j >= 1 && j <= i - 1) printf(" "); else printf("* "); } printf("\n"); } } return 0; }
#include <iostream> using namespace std; int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 1; i <= n; i ++ ) { if (i == 1) printf("* \n"); else if (i == n) { for (int j = 1; j <= n; j ++ ) printf("* "); printf("\n"); } else { printf("* "); for (int k = 1; k <= i - 2; k ++ ) printf(" "); printf("* \n"); } } } }
#include <stdio.h> int main(void) { int i, j, k, t; while (scanf("%d", &k) != EOF && (k >= 3 && k <= 20)) { for (i = 1; i <= k; i++) { for (j = 1; j <= i; j++) { if (i < 3 || i > k - 1) { printf("* "); } else { printf("* "); for (t = 3; t <= i; t++) { printf(" "); } printf("* "); break;//特殊行的处理; } } for (j = i; j <= k - 1; j++) { printf(" "); } putchar('\n'); } } return 0; }
#include <stdio.h> int main() { int n; while (scanf("%d", &n) != EOF) { //用第一层for循环实现n行。 for(int i = 1; i <= n; i++) { //第二层for循环实现每行输出,每行都比上一行多一个位置。 for(int j = 1; j <= i; j++) { //如果是第一行或最后一行,一直打印* 。 if((i == 1) || (i == n)){ printf("* "); } //其他行。 else{ //在第一个和最后一个位置打印* 。 if((j == 1) || (j == i)){ printf("* "); } //其他位置打印两个空格。 else{ printf(" "); } } } printf("\n");//每一行结束后换行。 } } return 0; }
int main() { int n = 0; int i = 0, j = 0; int k = 0; while (scanf("%d", &n) != EOF) { char arr = '*'; for (i = 1; i <= n; i++) { //打印最顶部分* if (i == 1) { printf("* \n"); } //2、打印三角形的底 else if (i == n) { for (j = 1; j <= n; j++) { printf("%c ", arr); } printf("\n"); } //打印两边 else if (i >= 2 || i <= n - 1) { for (j = 1; j <=1; j++) { printf("%c",arr); } for (j = n; j > n+2-i; j--)//每次递增,打印5行,就需要打印1,3,5个空格 { printf(" "); } for (j = 1; j <= 1; j++) { printf(" %c",arr); } printf("\n"); } } } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int n = in.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { if (i == 0 || i == n - 1 || j == 0 || j == i) { System.out.print("* "); } else { System.out.print(" "); } } System.out.println(); } } in.close(); } }
int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { if (i < 2 || i == n - 1) { for (int j = 0; j < i + 1; j++) { printf("* "); } printf("\n"); } else { printf("* "); for (int j = 0; j < i - 1; j++) { printf(" "); } printf("*\n"); } } } return 0; }
#include <stdio.h> int main() { int n = 0; while (scanf("%d", &n) != EOF) { for(int i = 0; i < n ; i++) { for(int j = 0; j <= i; j++) { if(j == 0 || j == i || i == n - 1) printf("* "); else printf(" "); } printf("\n"); } } return 0; }