镂空三角形
请通过函数实现,输出底边长为 n的镂空等腰三角形。输入
标准输入,包括两部分:c,n(0 <= n <=100,)c,n(0<n≤100,),c为指定输出的ASCII字符,n为指定的边长。
输出
用指定的字符输出边长为n的镂空等腰三角形。
示例输入
x 3
示例输出
x
x x
x x x
谢谢! #include <stdio.h>
void print(char ch, size_t n) {
if(n == 0) return;
n = (n - 1) * 2 + 1;
size_t a, b;
a = b = n / 2;
while(b < n - 1) {
for(size_t i = 0; i < n; ++i) {
if(i == a || i == b) putchar(ch);
else putchar(' ');
}
putchar('\n');
--a; ++b;
}
for(size_t i = 0; i < n; ++i) putchar(ch);
putchar('\n');
}
int main(void) {
char ch;
size_t n;
scanf("%c%lu", &ch, &n);
print(ch, n);
return 0;
}
本帖最后由 人造人 于 2021-3-10 16:28 编辑
#include <stdio.h>
int main(void)
{
char c ;
int i , j , n ;
scanf("%c%d" , & c , & n) ;
for(i = 0 ; i < n - 1 ; i ++) {
for(j = n - i - 1 ; j ; j --) printf(" ") ;
printf("%c" , c) ;
if(i) {
for(j = 0 ; j < i * 2 - 1 ; j ++) printf(" ") ;
printf("%c" , c) ;
}
printf("\n") ;
}
for(i = 0 ; i < n * 2 - 1 ; i ++) printf("%c" , c) ;
}
编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
* 5
*
* *
* *
* *
*********
D:\0002.Exercise\C>x
* 3
*
* *
*****
D:\0002.Exercise\C>x
* 21
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*****************************************
D:\0002.Exercise\C> #include <stdio.h>
int main(void)
{
char c;
int i, j, n;
scanf("%c%d", &c, &n);
for (i = 0; i < n - 1; i++)
{
for (j = n - i - 1; j; j--)
printf(" ");
printf("%c", c);
if (i)
{
for (j = 0; j < i * 2 - 1; j++)
printf(" ");
printf("%c", c);
}
printf("\n");
}
for (i = 0; i < n-1; i++)
{
printf("%c", c);
printf(" ");
}
printf("%c\n", c);
} jackz007 发表于 2021-3-10 16:33
编译、运行实况
注意题目中n为底边所以我改了下程序
#include <stdio.h>
int main(void)
{
char c;
int i, j, n;
scanf("%c%d", &c, &n);
for (i = 0; i < n - 1; i++)
{
for (j = n - i - 1; j; j--)
printf(" ");
printf("%c", c);
if (i)
{
for (j = 0; j < i * 2 - 1; j++)
printf(" ");
printf("%c", c);
}
printf("\n");
}
for (i = 0; i < n-1; i++)
{
printf("%c", c);
printf(" ");
}
printf("%c\n", c);
} 人造人 发表于 2021-3-10 16:25
题目中n为底边,我思考过后正确的代码也发了感兴趣可以看一下
页:
[1]