这是我的代码,它在Turbo C中运行得非常好,但在代码块中却没有。我面临的唯一问题是使用flushall()。我怎样才能克服这个问题?
#include<stdio.h>
#include<ctype.h>
int extractDigits(unsigned long int num, int *index, int *digits)
{
if (num)
{
digits[*index] = num % 10;
*index = *index + 1;
extractDigits(num / 10, index, digits);
}
return(*index);
}
int main()
{
int x=0,j,i,index=0,digit,digits[32];
unsigned long int n1,n2,temp,num,count=0;
printf("\n Enter lower value n1 : ");
if(!scanf("%lu",&n1))
x=1;
flushall();
printf("\n Enter higher value n2 : ");
if(!scanf("%lu",&n2))
x=1;
flushall();
printf("\n Enter the digit you wish to count : ");
if(!scanf("%d",&digit))
x=1;
flushall();
if(n1>n2||x)
{
a:printf("\n Invalid Input\n");
goto z;
}
if(n1<0||n1>150000||n2<0||n2>150000)
goto a;
if(!n1)
count++;
for(temp=n1;temp<=n2;temp++)
{
num=temp;
i=extractDigits(num, &index, digits);
for(j=0;j<i;j++)
{
if(digits[j]==digit)
count++;
}
index=0;
}
printf("\n Count : %lu \n",count);
z:return 0;
如果我不使用flushall(),那么我无法运行无效输入的测试条件。这个问题的解决方案是什么?
答案 0 :(得分:0)
http://www.cplusplus.com/reference/cstdio/
我没有找到flushall(),可能是编译器不同。有fflush
。也许你可以使用它。
答案 1 :(得分:0)