这是我的代码:
#include <stdio.h>
#define SIZE 10
int main(void)
{
int x,p[SIZE],i=0;
printf("type some characters\n");
while((x = getchar()) != EOF && i<SIZE)
{
if(x<'0' || x>'9')
{
p[i]=x;
i++;
}
else
{
printf("this number is not valid %d\n",i);
}
}
for(i=0;i<SIZE;i++)
{
putchar(p[j]);
}
return 0;
}
当您输入“数字字符”时,它应该不会添加到计数器中,而是在我输入数字字符时添加 1,并在添加任何其他字符时间时添加 2。
你的 if 语句的条件是向后的。
已修复:
if ( x<'0' || x>'9' )
{
fprintf( stderr, "Unexepcted non-digit.\n" );
exit( 1 );
}
else
{
p[i] = x;
++i;
}