以下是我的代码:
char str [80];
int n;
n = MAX + ( rand () % 1000 + 1);
cout << "number: " << n << endl;
constructArray(str, n);
void constructArray (char str [], int n)
{
for (int i = 0; i < n; i++)
{
while (n > 0)
{
// get last pair of digits
str [i] = n%10;
n/= 10;
}
cout << str[i] << endl;
}
}
我无法弄清楚为什么我的编译器不输出任何值。 如果我没有实现数组,它的工作原理。
任何帮助将不胜感激。
答案 0 :(得分:0)
在for
循环的第一次迭代中,当第一次执行while
(i=0
)时,n
将减少为0.因此,您的循环只执行一次。这将导致仅设置str[0]
。其他人已经指出,char不能存储大量数字,但这是一个不同的问题。
答案 1 :(得分:0)
您的代码存在一些问题。
integer
类型数组中存储char
。for
循环只会执行一次,因为while
循环使n = 0
。因此只会分配str[0]
。
答案 2 :(得分:0)
在while
循环中,n
仍然除以10,直到n
减少为0.然后for
循环结束。所以只输出str[0]
。