为什么这个程序现实没有错误,但无法运行 我想用一个数组来存放一个n位整数的各位数字,这样为什么运行不

为什么这个程序现实没有错误,但无法运行 我想用一个数组来存放一个n位整数的各位数字,这样为什么运行不了 #include using namespace std; int main() { int m,n,i=1; int k[n]={0}; cin>>m; while(n!=0) { k[i]=m%10; n=m/10; m=n; i++; } cout<

int k[n]={0};这里是不对的,这么写的时候n只能是常量,不能是变量,想要动态数组的话,可以用int* k = new int[n];如有帮助,请采纳一下,谢谢。

定义数组时数组得大小不能时变量,所以int k[n]编译不通过,除非n是常量。比如: const int n =10; int k[n] = {0};

 

 #include <iostream>
 
 using namespace std; 
 
 int main() 
 {
    int k[10] = { 0 }; 
    int n = 0; // number of digits
    int m; 
    cout << "Please enter an integer and press ENTER: ";
    cin >> m; 
    
    if (m == 0)
    {
        n = 1;
    }
    else
    {
        for (n = 0; m > 0; ++n)
        {
            k[n] = m % 10;
            m /= 10;
        }
    }
    
    cout << endl << "The digits of the integer are: " << endl;
    for (int i = n - 1; i >= 0; --i)
    {
        cout << k[i] << " ";
    }
    cout << endl;
    
    return 0;
}
 
// Output
Please enter an integer and press ENTER: 2021                                                                                                                                     
                                                                                                                                                                                  
The digits of the integer are:                                                                                                                                                    
2 0 2 1 

 

我更早回答了,而且贴了正确代码,没什么不采纳我的回答而采纳后面的回答呢?