用FOR语句绘制星号,在语句中多出了一个输入命令,怎么解决?
大家好,这一次是关于用for语句绘制*号的问题,请各位前辈指点!题目如下:用户连续输入5个数字(1-30之间),要求绘制出没有间隔的*号图形
例如,输入5 4 3 2 1
程序要显示:
*****
****
***
**
*
一下是我的语句:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int a ;
int x;
int y;
cout << "Enter 5 nums(1-30):";
cin >> a;
for ( x = 1; x <= 5; x++ ) //循环4次,因为上一句语句已经输入了一次 ?
{
for ( y = 1; y <= a; y++ )
{
cout <<'*';
}
cout << endl;
cin >> a; //这一句是核心,使得程序可以连续读入数据, 但是却循环5次后必须在属于一个数才能退出程序?
}
system("pause");
return 0;
}
这里程序效果运行成功,但出现了一个问题,就是当图形显示完之后,必须在输入一个“a”才能结束程序,我想显示完图形后直接结束程序,应该怎么改良呢?
感觉好像陷入了一个逻辑错误中....