Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么输出中出现意外值6295648和答案11110001?此处输入为241和2_C++ - Fatal编程技术网

C++ 为什么输出中出现意外值6295648和答案11110001?此处输入为241和2

C++ 为什么输出中出现意外值6295648和答案11110001?此处输入为241和2,c++,C++,输出 241 2 但输出应仅为11110001。我不明白为什么会出现值6295648。您的代码的问题是k在x[]数组中的赋值后,即在上一次迭代中k增加到8。然后在k-i的情况下,当i的值为0x[k-i]超出范围 629564811110001 #包括 使用名称空间std; 空基(整数n,整数b) { int x[20],k=-1; 而(n!=0) { x[++k]=n%b;//预增量 n=n/b; } 对于(int i=0;i>百色; 基地(编号:百色); 返回0; } 您的代码

输出

241  
2

但输出应仅为
11110001
。我不明白为什么会出现值
6295648

您的代码的问题是
k
x[]
数组中的赋值后,即在上一次迭代中
k
增加到
8
。然后在
k-i
的情况下,当
i
的值为0<代码>x[k-i]超出范围

629564811110001    
#包括
使用名称空间std;
空基(整数n,整数b)
{
int x[20],k=-1;
而(n!=0)
{
x[++k]=n%b;//预增量
n=n/b;
}
对于(int i=0;i>百色;
基地(编号:百色);
返回0;
}

您的代码的问题是
k
x[]
数组中的赋值被增加post即在上一次迭代中
k
被增加到
8
。然后在
k-i
的情况下,
i
的值为0..
x[k-i]
超出范围

629564811110001    
#包括
使用名称空间std;
空基(整数n,整数b)
{
int x[20],k=-1;
而(n!=0)
{
x[++k]=n%b;//预增量
n=n/b;
}
对于(int i=0;i>百色;
基地(编号:百色);
返回0;
}

使用“i==0”,可以打印从未分配的
x[k]
。您的程序通过访问未初始化的对象显示未定义的行为。使用“i==0”,可以打印从未分配的
x[k]
。您的程序通过访问未初始化的对象显示未定义的行为。
#include <iostream>
using namespace std;

void base(int n,int b)
{
    int x[20],k=-1;
    while(n!=0)
    {
        x[++k]=n%b; //pre increment
        n=n/b;
    }
    for(int i=0;i<=k; i++)//now k contains the index of the last element
    {
        cout<<x[k-i];
    }
    return ;
}

int main()
{
    int number,baise;
    cin>>number;
    cin>>baise;
    base(number,baise); 
    return 0;
}
for(int i=0;i<=k;i++)
{
    cout<<x[k-i];
}
cout << x[k];
for(int i = k-1; i >= 0; i--)
{
    cout << x[i];
}