如何从浮点数中找到第一个坏数字

时间:2015-03-23 21:05:16

标签: c

我有这个问题:我正在输入数字以浮动...我希望程序找出,第一个数字不是来自特定的间隔。 怎么做 ? 示例:输入输入:5 10 20 30 50 46。 30无效。 问题是,printf打印的只是第一个浮点数,例如:10 20 30 40 50. 10无效......我预计" 30无效" 这是代码:

while(scanf("%f",&input)!=EOF || input==0){

sum=input+sum;
if (getchar() == '\n') break;
};

for (int i=0;i<14;i++)
{
if(input!=notes[i])
{
    printf("%f is invalid\n",input);
}

}

任何帮助表示赞赏:)

2 个答案:

答案 0 :(得分:0)

你可以在数组中保留这个数字100,50,20,...并使用for循环检查某个数字是否等于其中任何一个,如果是,则数字有效,否则无效

答案 1 :(得分:0)

好吧,我找到了答案:

while(scanf("%f",&input)!=EOF || input!=0)
{
if (input == 0) break;
sum=input+sum;

    if(input!=100 &&input!=50 &&input!=20 &&input!=10 &&input!=5 &&input!=2 &&input!=1 &&input!=0.5 &&input!=0.2 &&input!=0.1 &&input!=0.05 &&input!=0.02 &&input!=0.01)
    {
            if (input ==  (int) input)  
       printf("%.0f is invalid!\n" ,input);
      else printf("%.2f is invalid!\n" ,input);
            exit(1);
    }


     if (getchar() == '\n') break;
};

无论如何,谢谢你的帮助:)!