你第8行的for-x循环,初始值a-1和终止值0都是常量,没有变化,所以每次输出的空格一样多.
创新互联建站-专业网站定制、快速模板网站建设、高性价比泰兴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式泰兴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖泰兴地区。费用合理售后完善,十多年实体公司更值得信赖。
第8行的for-x循环,初始值应该是x=a-z;把这个地方改了,程序就对了.
完整的C++语言打印星号的程序如下(改动的地方见注释)
#include iostream
using namespace std;
int main()
{
int x;int y;int z;int a;
a=5;
for(z=1;z=a;z++)
{
for(x=a-z;x0;x--)//这里x=a-1;改成x=a-z;
cout" ";
for(y=1;y2*z;y++)
cout"*";
coutendl;
}
return 0;
}
运行结果
无参函数
#include stdio.h
#include math.h
#define n 3
void f()
{
int i,j,k;
for(i=1;i=2*n+1;i++)
{
j=abs(n+1-i);
for(k=1;k=j;k++)
printf(" ");
for(k=1;k=2*n+1-2*j;k++)
printf("*");
printf("\n");
}
}
int main()
{
f();
}
有参函数
#include stdio.h
#include math.h
void f(int n)
{
int i,j,k;
for(i=1;i=2*n+1;i++)
{
j=abs(n+1-i);
for(k=1;k=j;k++)
printf(" ");
for(k=1;k=2*n+1-2*j;k++)
printf("*");
printf("\n");
}
}
int main()
{
f(3);
}
C语言输出如题所示图案的代码如下:
#includestdio.h
int main( )
{
int x;
int i,j,k;
printf("请输入,需要生成图案的行数(单数):");
scanf("%d",x);
k=x/2+1;
for(i=1;i=k;i++)
{
for(j=0;j2*i-1;j++)
printf("*");
printf("\n");
}
for(i=k-1;i=1;i--)
{
for(j=0;j2*i-1;j++)
printf("*");
printf("\n");
}
}
扩展资料:
由题,需要输出这样一个图像,可将其看为一个正三角形与倒三角形的组合。
且对于下图:
*
***
*****
*******
*****
***
*
由行数与*号的关系可得,在对于总行数/2+1的部分,行数*2+1,即为*号的数目,因而得到了前半段图形的代码。
而对于后半部分的倒三角形,其行数可记为,倒数总行数/2...3、2、1行,则可利用循环以及2*行数-1,得到下半部分的图像。
你的程序太长了。。我懒的看 直接写了一个 你觉得怎样
#includestdio.h
#includemath.h
main()
{ int i,j;
for(i=-3;i=3;i++)
{
for(j=0;jfabs(i);j++)
printf(" ");
printf("*");
for(j=0;j5-2*fabs(i);j++)
printf(" ");
if(!(i==-3||i==3))
printf("*");
printf("\n");
}
}
怕你不会用n带,我又写了一个n的版本。。
#includestdio.h
#includemath.h
main()
{ int i,j,n=11;
for(i=-n/2;i=n/2;i++)
{
for(j=0;jfabs(i);j++)
printf(" ");
printf("*");
for(j=0;jn-2*fabs(i)-2;j++)
printf(" ");
if(!(i==-n/2||i==n/2))
printf("*");
printf("\n");
}
}
算了 如果n是偶数我也帮你写了吧
#includestdio.h
#includemath.h
main()
{ int i,j,n=11,f=0;
if(n%2==0)
{
f=1;n++;
}
for(i=-n/2;i=n/2;i++)
{
if(fi==0)
continue;
for(j=0;jfabs(i);j++)
printf(" ");
printf("*");
for(j=0;jn-2*fabs(i)-2;j++)
printf(" ");
if(!(i==-n/2||i==n/2))
printf("*");
printf("\n");
}
}
#include stdio.h
int main()
{
int i, j;
for(i = 0; i 10; i++)
{
for(j = i; j 10; j++)
printf("*");
printf("\n");
}
return 0;
}
#includestdio.h
main()
{ int N,a;
scanf("%d",N);
for(a=0;aN;a++)
printf("*");
getch();
}
这么写就行了,你前面有很多没用的还有些是程序布恩那个运行的