数组元素的值保持不变

时间:2016-01-27 15:28:35

标签: c++ arrays

我是C ++的新手。下面是一个将整数转换为数组的程序。但是,数组的值不会从初始值更改。

#include <iostream>
#include <algorithm>
using namespace std;

int main(){

    int n,i=0;
    cin >> n;
    int arr[100]={0};
    while(n){
        arr[i]=n%10;
        i++;
        n=n/10;
        cout<<arr[i];
    }

return 0;
}

arr[i]打印的值为0。我不明白错误是什么。有人可以告诉我究竟是什么错误。

3 个答案:

答案 0 :(得分:2)

打印后尝试增加i

cout << arr[i] << endl;

i++;

答案 1 :(得分:0)

你过早地增加了我的价值。它应该在while循环的末尾。否则,您将打印下一个整数,该整数始终为零。当你处理迭代时,使用for循环几乎总是更好。

答案 2 :(得分:0)

虽然这不是bug的原因,但请注意声明:

int arr[100]={0};

此语句仅初始化数组的第一个值。

如果用非零的东西初始化它,并在循环之前转储数组的内容,你会看到只修改了第一个值(例如a [0])。

根据您运行的平台,某些系统不会将内存初始化为零,并且应用程序的结果将不稳定。