关于for循环的问题

CZBKJSJ 2013-05-25 10:00:36
/*
目的:输入数据,打印输出连续的*号
*/
#include <stdio.h>

int main()
{
int x;
printf("Enter data(-1 to end):");
scanf("%d",&x);

int i=1;
while(x!=-1)
{
for(;i<=x;++i)
{
printf("*");
}

printf("\n");

if(x==-1)
break;

printf("Enter data(-1 to end):");
scanf("%d",&x);

}

printf("\n");
return 0;
}

为何只有第一次输入值可以正确打印,以后输出的值都不能打印呢?为何第二次开始输入的值for循环怎么就不接受了呢?请大家帮忙解答……
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
startservice 2013-05-25
  • 打赏
  • 举报
回复
i未初始化。
绯红女王 2013-05-25
  • 打赏
  • 举报
回复
每次循环,i都要初始化的啊,没初始化的话,有可能会导致第1次之后,i的值比x的大,当然就不能正确输入啦~~
bewinged 2013-05-25
  • 打赏
  • 举报
回复
基础还需要提高呀
hugett 2013-05-25
  • 打赏
  • 举报
回复

/*
目的:输入数据,打印输出连续的*号
*/
#include <stdio.h>

int main()
{
	int x;
	printf("Enter data(-1 to end):");
	scanf("%d",&x);

	int i;
	while(x!=-1)
	{
		for(i = 1 ;i<=x;++i)//将i=1放在这里。。
		{
			printf("*");
		}

		printf("\n");

		if(x==-1)
			break;
		
		printf("Enter data(-1 to end):");
		scanf("%d",&x);
	
	}

	printf("\n");
	return 0;
}
失散糖 2013-05-25
  • 打赏
  • 举报
回复
在while循环的里面,应该给i重新初始化一下

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧