我是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
。我不明白错误是什么。有人可以告诉我究竟是什么错误。
答案 0 :(得分:2)
打印后尝试增加i
cout << arr[i] << endl;
i++;
答案 1 :(得分:0)
你过早地增加了我的价值。它应该在while循环的末尾。否则,您将打印下一个整数,该整数始终为零。当你处理迭代时,使用for循环几乎总是更好。
答案 2 :(得分:0)
虽然这不是bug的原因,但请注意声明:
int arr[100]={0};
此语句仅初始化数组的第一个值。
如果用非零的东西初始化它,并在循环之前转储数组的内容,你会看到只修改了第一个值(例如a [0])。
根据您运行的平台,某些系统不会将内存初始化为零,并且应用程序的结果将不稳定。