用C语言循环嵌套语句编出一个三角形形状

如题所述


#include <stdio.h>
int main()  
{  
    int i,j,n=6;   
    //输出第一行:n-1个空格和1个星号并换行  
    for(j=1; j<=n-1; ++j) //输出n-i个空格  
        printf(" ");  
    printf("*\n"); 
    //再输出中间的n-2行  
    for(i=2;i<=n-1;++i) //一共要输出n-2行  
    {  
        //输出第i行  
        for(j=1; j<=n-i; ++j) //输出n-i个空格  
            printf(" ");  
        printf("*");  //再输出一个星号  
        for(j=1; j<=2*i-3; ++j) //然后输出2*i-3个空格  
            printf(" ");  
        printf("*\n");//输出一个星号后本行结束,换行  
    }  
    //输出最后一行:2*n-1个星号  
    for(j=1; j<=2*n-1; ++j)   
        printf("*");  
    printf("\n");
    return 0;     
}

#include <stdio.h>
int main( )  
{  
    int i,j,n=6;   
    for(i=1;i<=n;++i) //一共要输出n行  
    {  
        //输出第i行  
        for(j=1; j<=n-i; ++j) //输出n-i个空格  
            printf(" ");  
        for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号  
            printf("*");  
        printf("\n");
    }  
    return 0;     
}

#include <stdio.h>
void print_triangle(int n,int x,int t)  
//n为每个小三角形的行数,x为连续输出三角形的个数,t为三角形的向右的位移(1表示1个空格)  
{  
    int i,k,j;  
    for(i=0;i<n;i++)  //控制行数  
    {  
        for(k=0;k<t;k++) //控制位移  
            printf("%c",32);  //空格ASCII码为32
        for(j=x;j>0;j--)  //控制个数  
        {  
            for(k=n-1;k>i;k--)    
                printf("%c",32);  
            for(k=0;k<i*2+1;k++)  
                printf("%c",42);  
            for(k=n;k>i&&j>1;k--)  
                printf("%c",32);  
        }  
        printf("\n");  
    }  
}  
int main()  
{  
    int i,k,N,t;  
    printf("please input N:");  
    scanf("%d",&N);  
    
    for(i=1;i<=N;i++) //控制大三角形行数  
    {  
        t=N*(N-i);    
        print_triangle(N,i,t);  
    }  
    
    return 0;  
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-30
/**程序如下,希望对你有所帮助与参考! 自己多看书.*/
/**
*@author:banxi1988
*@date:2010-11-30
*/
#include<stdio.h>
#include<stdlib.h>/** 包含了求绝对值函数abs*/

int main(int argc, char **agrv){

char ch;//填充字符
int num ;//边长
int groupCount = 0;//数据组数.
int i,j,k;
printf("请输入一个可见字符和一个边长n(1<n<30)\n");
scanf("%c%d",&ch,&num);

for( i = 1; i<(num+1);i++){
if(num>30)break;
for( j = 0; j<num-i;j++)putchar(' ');
for( k = 0; k< (2*i-1); k++){
if(k>0&&k<(2*i-2)&&i!=num)putchar(' ');/**注释掉这一句和下面的 else输出实心的三角形*/
else
putchar(ch);
}//for:
putchar('\n');

}//for:
return 0;
}//main:
/********************两种输出结果如下:
请输入一个可见字符和一个边长n(1<n<30)
c 3
c
ccc
ccccc

请输入一个可见字符和一个边长n(1<n<30)
c 6
c
c c
c c
c c
c c
ccccccccccc

*******************************/
第2个回答  推荐于2016-10-20
#include<stdio.h>

int main(){

int n, i, j;
while (scanf("%d", &n) == 1){
for (i = 0; i < n; i++){
for (j = 0; j < n - i; j++)
putchar(' ');
for (j = 0; j < i * 2 + 1; j++)
putchar('*');
putchar('\n');
}
}
return 0;
}
输入一个n就会打印出一个三角形本回答被提问者和网友采纳