Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 将用户输入值存储到数组中并显示它们将显示垃圾值_C_Arrays_Loops_Storage - Fatal编程技术网

C 将用户输入值存储到数组中并显示它们将显示垃圾值

C 将用户输入值存储到数组中并显示它们将显示垃圾值,c,arrays,loops,storage,C,Arrays,Loops,Storage,我正在编写一个简单的程序,要求用户输入偶数和奇数。它们分别存储在数组storeItem1和storeItem2中。程序询问用户两次。问题在于我的输出。我想显示用户输入的值 如果(!storeItem1)中断,则用于显示值的for循环的退出条件为一旦数组的当前元素为空,它将结束循环。然而,输出结果是这样的 Even Numbers Are: 2 Even Numbers Are: 4 Even Numbers Are: some garbage value Odd Numbers Are: 1 O

我正在编写一个简单的程序,要求用户输入偶数和奇数。它们分别存储在数组
storeItem1
storeItem2
中。程序询问用户两次。问题在于我的输出。我想显示用户输入的值

如果(!storeItem1)中断,则用于显示值的for循环的退出条件为
一旦数组的当前元素为空,它将结束循环。然而,输出结果是这样的

Even Numbers Are: 2
Even Numbers Are: 4
Even Numbers Are: some garbage value
Odd Numbers Are: 1
Odd Numbers Are: 3
Odd Numbers Are: some garbage value
我不明白的是,为什么循环的迭代到达数组元素为null的部分时,条件不终止循环?它不应该在显示所有非空数组值后结束吗?这是我的代码附在下面。提前谢谢

#include<stdio.h>

main(void)
{
    int storeItem1[8], storeItem2[8], even, odd;
    int i=0, j=0, dis=0, dis2=0;

    do
    {
        printf("Input Even Number: ");
        scanf("%d",&even);
        storeItem1[j]=even;

        printf("Input Odd Number: ");
        scanf("%d",&odd);
        storeItem2[j]=odd;

        ++j;
        ++i;

    }while(i<2); //asks user to input twice

    //display the stored values
    for(dis;dis<8;++dis) //display all input even numbers
    {
        if(!storeItem1[dis])break; //exits loop when current array element is null
        printf("\nEven Numbers are: %d",storeItem1[dis]);

    }

    for(dis2;dis2<8;++dis2) //display all input odd numbers
    {
        if(!storeItem2[dis2])break; //exits loop when current array element is null
        printf("\nOdd Numbers are: %d",storeItem2[dis2]);
    }

}
#包括
主(空)
{
int-storeItem1[8],storeItem2[8],偶数,奇数;
int i=0,j=0,dis=0,dis2=0;
做
{
printf(“输入偶数:”);
scanf(“%d”&偶数);
storeItem1[j]=偶数;
printf(“输入奇数:”);
scanf(“%d”&奇数);
storeItem2[j]=奇数;
++j;
++一,;

}虽然(i我很不好意思这么快回答我的问题。我修改了我的循环条件

for(dis;dis<i;++dis)
    {
        //if(!storeItem1[dis])break; //exits loop when current array element is null
        printf("\nEven Numbers are: %d",storeItem1[dis]);

    }

    for(dis2;dis2<j;++dis2)
    {
        //if(!storeItem2[dis2])break; //exits loop when current array element is null
        printf("\nOdd Numbers are: %d",storeItem2[dis2]);
    }

for(dis;dis如果(!storeItem1[dis]),NateEldredge不会识别数组中的其他值包含垃圾值吗?不,如果(!storeItem1[dis]),您的测试
if(!storeItem1[dis])
只测试
storeItem1[dis]
是否为零。这与编写
if(storeItem1[dis]==0)
完全相同。垃圾值当然可以非零。例如,它可能是57。感谢@NateEldredge的澄清,我真的必须从更细微的资源中研究数组。