版权声明:本文为博主原创文章,只要注明出处,喜欢可以随意转载,希望能帮到你。 https://blog.csdn.net/weixin_41287260/article/details/88688023
方法好像挺多的,我这里值介绍一种:(里面有注释)
#include<stdio.h>
//打印倒三角
/*
*_*_*_*
_*_*_*
__*_*
___*
*/
//思路:先定义一个字符数组,把第一行(n个*+n-1空格)显示出来,
//后面的每行就先输出n-i空格,然后再输出该字符数组
void print_r_triangle(int n)
{
char a[2*n-1]; //n+n-1
int i,j;
//为字符数组赋值
for(i=0; i<2*n-1; i++) {
if(i%2==0) {
a[i]='*';
} else {
a[i]=' ';
}
}
//测试:打印字符数组
// for(i=0; i<2*n-1; i++) {
// printf("%c",a[i]);
// }
//打印倒三角
for(i=0; i<n; i++) { //n行
for(j=0; j<(2*n-1)-i; j++) {
//如果是第一行,就输出全部字符
if(i==0) {
printf("%c",a[j]);
} else { //否则就先输出空格,然后从行数i对应位置开始输出字符数组
if(j<i) {
printf(" ");
} else {
printf("%c",a[j-i]);
}
}
}
printf("\n");
}
}
int main()
{
print_r_triangle(15);
return 0;
}