从键盘输入若干个整数,其值在0~4的范围内,用-1作为输入结束的标志。

要求:①输入的数据用数组存放,数据个数不少于20个。


#include<stdio.h>
int main()
{
       int i,a[100];
       for(i=0;;i++)
           {
                   scanf("%d",&a[i]);    //输入数据
                   if(a[i] == -1)            //数据为-1时结束
                           break;
                   if((a[i] <= 4)&&(a[i] >= 0))    //数据若在0~4内,程序进行下一阶段取数
                           continue;
                   else                                          //数据若不在0~4内,擦除本次信息

                            {

                                a[i] = 0;

                                i--;

                            }

           }
       return 0;
}

你给的需求太少了,目前这个程序能实现已描述的功能。

追问

但是运行有问题,没结果。能不能先定义一个变量,判断这个变量是否符合0~4这个要求再放入数组a[i]中呢?

追答

抱歉,刚才有点事。
你想要什么样的结果呢?是把所有输入过的0~4的数都显示一遍么?如果是需要这样,那么我得加点代码。之前因为不确定需求,所以没加。

追问

是的,输入过的数都显示在结果里,其中大于4的数显示为0,-1后面的数不能显示。

追答

好,我回去后给你改一下。

你发个追问,我好把程序写上去。

追问

好的,谢谢啦。

追答#include<stdio.h>
int main()
{
    int i,a[100]; 
    for(i=0;;i++)
    {
        scanf("%d",&a[i]);    //输入数据
        if(a[i] == -1)            //数据为-1时结束
            break;
        if((a[i] <= 4)&&(a[i] >= 0))    //数据若在0~4内,程序进行下一阶段取数
            continue;
        else                            //数据若不在0~4内,数值写为0
            a[i] = 0;
    }
    for(int j = 0;j < i;j++)            //将数组数据显示出来
        prinf("%d ",a[j]);
    printf("\n");
    return 0;
}

如果有和想法不一致的,尽快提出来。

追问

文件所在的卷已被外部更改,因此打开的文件不再有效。
是什么意思啊?

追答

你把你粘贴的代码给我看看,我这边看到的代码貌似有点乱了。

温馨提示:答案为网友推荐,仅供参考