C语言打印输出一个由*组成的菱形

#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
{
for(k=3;k<=4-i;k--)
printf(" ");
for(j=0;j<2*i-1;j++)
printf("*");
printf("\n");
}
for(i=5;i<8;i++)
{
for(k=1;k<=i-4;k++)
printf(" ");
for(j=0;j<=15-i*2;j++)
printf("*");
printf("\n");
}
}不知道程序错在哪里了?编译连接都无错误,就是输出没反应?

第1个回答  推荐于2018-02-28
改这样就ok了
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
{
for(k=0;k>=i-4;k--)
printf(" ");
for(j=0;j<2*i-1;j++)
printf("*");
printf("\n");
}
for(i=5;i<8;i++)
{
for(k=0;k<=i-4;k++)
printf(" ");
for(j=0;j<=14-i*2;j++)
printf("*");
printf("\n");
}
}本回答被提问者和网友采纳
第2个回答  2011-09-15
其实程序是输出了的,只是运行完了就回来了,你没看到,alt+F5键可以查看结果,或者在程序的末尾处加上一句getch();事实证明你的程序是有些问题的,你自己再看看,因为输出的不是菱形。。。
第3个回答  2011-09-15
for(k=3;k<=4-i;k--)
这是个死循环~~
第4个回答  2019-05-31
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=4;j>=i;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=5;k>=2*i-1;k--)
printf("*");
printf("\n");
}
return 0;
}
不妨试试我这个