C ++嵌套循环/动态数组E.

时间:2016-03-26 21:41:09

标签: c++ arrays loops for-loop

我编写的程序应该从用户输入中获取多行,然后显示多行星号,第一行有一个星号,第二行有两个星号,依此类推。 它有效,但我有两个问题:

1)每一行的开头总有一个额外的符号,我不知道它的起源。我已经尝试显示数组的[0]值,但它似乎不是来自那里。

2)在输入一些(而不是全部)行时,程序会在行之后立即显示附加的随机符号。这是动态内存分配的问题吗?

感谢您的帮助。

#include<iostream>
using namespace std;
int main()
{
cout << "Enter the number of rows: ";
int number;
cin >> number;
int q = number + 1;
char dot = '.';
char asterisk = '*';
char * array1 = new char[q];

int n, m, s;
n = number;
for (n; n > 0; n--)
    {
        array1[n] = asterisk;

        for (m = n - 1; m > -1; m--)
            {
                array1[m] = dot;
            }

        cout << array1 << endl;
    }
delete [] array1;
return 0;
}

1 个答案:

答案 0 :(得分:0)

char []没有以NUL字符结尾,因此&lt;&lt;操作员不知道何时停止写作。尝试使用cout.write()代替。