首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数返回数组,但输出不像预期的那样

函数返回数组,但输出不像预期的那样
EN

Stack Overflow用户
提问于 2015-11-13 06:43:02
回答 1查看 33关注 0票数 1

我遇到的问题是,我试图从函数EnterNumber()返回一个数组,并将其显示在主目录中,但结果非常疯狂。我使用了调试器,调试器中的数字是正确的,只是一旦它打印到屏幕上就不正确了。

我意识到我的项目中有一个全球性的项目,但它得到了我的教授的认可,他希望我们这次只为这个项目做这件事。

只是想弄清楚为什么它的印刷不正确。谢谢。

代码语言:javascript
复制
#include <iostream>

using namespace std;

void EnterNumber(int Number[]);

const int SIZE=20;

int main()
{
    int LargeNumber1[SIZE];
    int LargeNumber2[SIZE];

    for (int Counter1=0; Counter1<=19; ++Counter1)//zeros arrays out
    {
        LargeNumber1[Counter1]=0;
        LargeNumber2[Counter1]=0;
    }

    EnterNumber(LargeNumber1);

    for (int Counter2=0; Counter2<=19; ++Counter2)//display array 1 contents
    {
        cout << LargeNumber1[SIZE];
    }

    cout << "\n\n";

    EnterNumber(LargeNumber2);

    for (int Counter2=0; Counter2<=19; ++Counter2)//display array 2 contents
    {
        cout << LargeNumber2[SIZE];
    }

}

void EnterNumber(int Number[])
{
    int TemporaryArray[SIZE];
    int PlaceCounter;

    char Storage;

    PlaceCounter=0;

    for (int Counter1=0; Counter1<=19; ++Counter1)//zeros arrays out
    {
        TemporaryArray[Counter1]=0;
        Number[Counter1]=0;
    }

    cout << "Please enter a large number --> ";

    cin.get(Storage);

    while (Storage!='\n' && PlaceCounter<SIZE)//puts number in temp array - left aligned
    {
        TemporaryArray[PlaceCounter]=(Storage-'0');
        ++PlaceCounter;
        cin.get(Storage);
    }

    --PlaceCounter;//decrement one to get it to work properly with element style counting, else, extra zero at end

    for (int A=SIZE-1; PlaceCounter>=0; A--, PlaceCounter--)//transfers old array into new array, right aligned
    {
        Number[A]=TemporaryArray[PlaceCounter];
    }

    cout << "\n";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-13 06:47:55

这是:

代码语言:javascript
复制
for (int Counter2=0; Counter2<=19; ++Counter2)
{
    cout << LargeNumber1[SIZE];
}

应该是这样:

代码语言:javascript
复制
for (int Counter2=0; Counter2<SIZE; ++Counter2)
{
    cout << LargeNumber1[Counter2];
}

您正在反复打印一个刚好超出数组末尾的数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33687219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档