数组大小与输入的数据大小不同 - C.

时间:2016-08-28 03:56:11

标签: c arrays

我正在编写一个代码,我可以在其中将数字与用户给出的数字分开,并将每个数字输入到新数组中。

我是C的新手,我正在努力将数字放入数组中,我试图打印所有计算的内容,以便查看我出错的地方,但我可以搞清楚

#include<stdio.h>

int main()
{
    int input,COUNT=0,i;



    printf("LCD calculator display.\n");
    printf("Enter input:");
    scanf("%d",&input);


    int inputCopy = input;
    while(input!= 0)
    {
    input /= 10;
    COUNT++;
    printf("Count = %d\n",COUNT);
    } 

    int s = COUNT;
    int output[5];
    int SIZE = sizeof(output);
    printf("s = %d\n",s);
    printf("output size = %zu\n",sizeof(output));
    printf("Size = %d\n",SIZE);

    for(i=0;i<COUNT;i++)
    {
        int digit = inputCopy % 10;
        output[i] = digit;
        inputCopy /= 10;
        i++;
    }

    for(i=0;i<COUNT;i++)
    {
        printf("Numbers: %d\n",output[i]);
    }
}

我得到以下结果:

LCD calculator display.
Enter input:13579
Count = 1
Count = 2
Count = 3
Count = 4
Count = 5
s = 5
output size = 20
Size = 20
Numbers: 9
Numbers: 0
Numbers: 7
Numbers: 0
Numbers: 5

我知道他们在那里有一些不必要的线路可以帮助我找出错误的地方 任何有助于正确存储数字的帮助非常感谢

1 个答案:

答案 0 :(得分:0)

你在for循环中增加了两次

for(i=0;i<COUNT;i++)                     // HERE
{
    int digit = inputCopy % 10;
    output[i] = digit;
    inputCopy /= 10;
    i++;                                 // AND HERE 
}