用C 语言编程打印三角形倒型号 ********** ******** ***** *** *

作者&投稿:冶垄 (若有异议请与网页底部的电邮联系)
用C语言打印一个用星号组成的三角形~

int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{for(j=0;j<2*i+1;j++)
printf("*");
printf("
");
}

不知道问题的显示是否去掉了多余的空格,下面附上另一种形式的(带空格)
int i,j,k,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{for(k=i;k<n/2;k++)
printf(" ");
for(j=0;j<2*i+1;j++)
printf("*");
printf("
");
}

#include
void main()
{
int i,j;
for (i=1;i<=5;i++)
{
for (j=1;j<=i;j++) printf("*");
printf("
");
}
for (i=4;i>=1;i--)
{
for (j=1;j<=i;j++) printf("*");
printf("
");
}
}

你所给的星号数是第一行是10,第二行是8,第三行是5,第四行是3,最后一行是1,这几行连看起来是无规律的,我觉得可能你在复制时把第二行多打了一个"*",所以我把第二行改成7个,这样(1,3,5,7,9)刚好满足(2n-1)的规律。
修改后实现代码如下:
#include<stdio.h>
int main()
{int n,s,i,j;
scanf("%d",&n); //n为最大行数
for(s=n;s>=1;s--)
{for(i=1;i<=n-s;i++)
printf(" "); //输出每行前面的空格部分
for(j=1;j<=2*s-1;j++)
printf("*"); //输出每行前面的星号部分
printf("\n");
}
return 0;

}
如果我的修改与原意不符,我很乐意你给我留言。

#include<stdio.h>

void main()
{
int i,j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < i; j++)
printf(" ");
for(j = 0; j < (5 -i) *2 -1; j++)
printf("*");
printf("\n");
}
}

运行结果
*********
*******
*****
***
*
Press any key to continue

楼主啊,编程还是要自己动手编才有进步的,这倒三角再复杂无非就是几个for语句的循环嘛。
不过呢,根据你的表意不清的问法,我可以立刻给一个答案,看好了:
#include<iostream>
using namespace std;
int main()
{
cout<<"**********\n"<<"********\n"<<"*****\n"<<"***\n"<<"*\n"<<endl;
return 0;
}

这是基础题目,还是自己做,C语言不能只看书,关键还要上机操作!