我有这个问题:我正在输入数字以浮动...我希望程序找出,第一个数字不是来自特定的间隔。 怎么做 ? 示例:输入输入: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);
}
}
任何帮助表示赞赏:)
答案 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;
};
无论如何,谢谢你的帮助:)!