多组输入,一个整数(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 i = 0;
int j = 0;
int n = 0;
int num = 5;
while (scanf("%d", &num) != EOF)
{
for (i = 0; i < num - 1; i++)
{
for (j = 0; j <= i; j++)
{
if (j == 0 || j == i)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
for (i = 0; i < num; i++)
{
printf("* ");
}
printf("\n");
}
return 0;
} import sys
for line in sys.stdin:
a = int(line.split()[0])
for i in range(1,a):
l = list(" "*i)
l[0] = l[-1] = "*"
x = " ".join(l)
print(x)
print("* "*a)