问题 A: 输出梯形
#define _CRT_SECURE_NO_WARNINGS 1
#include<cstdio>
#include<cstring>
const int maxn = 1010;
int main()
{
int n;
int i, j;
int sum;
int temp;
while (scanf("%d", &n) != EOF)
{
sum = n + 2 * (n - 1);
temp = 0;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= sum - n - temp * 2; j++)
printf(" ");
for (; j <= sum; j++)
printf("*");
printf("\n");
temp++;
}
}
//scanf("%d", &N);
//scanf("%d %d", &L, &M);
//printf("%d %d\n", L, M);
//printf("%d\n", num);
return 0;
}
问题 B: Hello World for U
这题主要是计算两边的字符和最后一行的字符个数,难度不大
#define _CRT_SECURE_NO_WARNINGS 1
#include<cstdio>
#include<cstring>
const int maxn =85;
char a[maxn];
int main()
{
char a[85];
int len;
int mid;
int i,j;
int high;
int side;
scanf("%s", a);
len = strlen(a);
high = (len + 2) / 3;
mid = len - high * 2;
for (i = 0; i < high-1; i ++)
{
printf("%c", a[i]);
for (j = 1; j <= mid; j++)
printf(" ");
printf("%c\n", a[len-1-i]);
}
j = len - 1 - i;
for(i;i<=j;i++)
printf("%c",a[i]);
return 0;
}
问题 C: 等腰梯形
#define _CRT_SECURE_NO_WARNINGS 1
#include<cstdio>
#include<cstring>
const int maxn =85;
char a[maxn];
int main()
{
int h;
int len;
int i,j;
int m;
int mm;
scanf("%d", &m);
for(mm=0;mm<m;mm++)
{
scanf("%d",&h);
for (i = 0; i < h; i++)
{
for (j = 1; j <= h - i-1; j++)
printf(" ");
for (j = 1; j <= h + 2 * i; j++)
printf("*");
printf("\n");
}
}
//scanf("%d", &N);
//scanf("%d %d", &L, &M);
//printf("%d %d\n", L, M);
//printf("%d\n", num);
return 0;
}
问题 D: 沙漏图形 tri2str [1+]*
#define _CRT_SECURE_NO_WARNINGS 1
#include<cstdio>
#include<cstring>
const int maxn =85;
char a[maxn];
int main()
{
int n;
int i;
int j;
while (scanf("%d", &n) != EOF)
{
for (i = 0; i < n; i++)
{
for (j = 1; j <= i; j++)
{
printf(" ");
}
for (j = 1; j <= n - i; j++)
{
printf("* ");
}
printf("\n");
}
for (i = 1; i < n; i++)
{
for (j = 1; j < n-i; j++)
{
printf(" ");
}
for (j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}