为什么这个程序最后一行的一个星号无法输出?

#include<stdio.h>
int main()
{
int i,j,n=2;
for(i=0;i<=n;i++)
{
for(j=1;j<=2*i+1;j++)
printf("*");
printf("\n");
}
for(i=n;i>=0;i--)
{
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
getchar();
}
}

你把 getchar(); 放在 i 循环里,所以i 循环1次就要暂停,等待键盘输入,打破了你的输出循环。
你可以删掉 getchar(); ,或把它放到 程序尾。
放到 程序尾 的用途 是避免 运行窗消失太快,看不到输出结果。
for(i=n;i>=0;i--)
{
for(j=1;j<=2*i-1;j++)printf("*");
printf("\n");
}
getchar();
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-03
是放在了外面,放在里面就等获取字符才继续执行了。
放外面就起一个暂停程序的作用
第2个回答  2012-04-03
最后的getchar()的问题,

#include<stdio.h>
int main()
{
int i,j,n=2;

for(i=0;i<=n;i++)
{
for(j=1;j<=2*i+1;j++)
printf("*");
printf("\n");
}

for(i=n;i>=0;i--)
{
for(j=1;j<=2*i-1;j++)
printf("*");

printf("\n");
}
getchar();
}追问

为什么getchar();要放在里面?

追答

你写的因为放在了最后一个for循环中,导致最后for循环实际上并没有作完全部的printf,
放到main的最后就没有问题了。还有什么问题?

相似回答
大家正在搜