想问一下这一段代码有什么问题

这段代码想检测输入是否为正整数,但输入是整数的时候不能得到结果,函数不返回1

#include <stdio.h>
#include <string.h>

int isint(char x[]){
    int mark=0;                                 // used for loop marking
    int i;
    while (mark==0){
        for (i=0; i<strlen(x); i++){            // check if it is a int
            if (x[i]>='0' && x[i]<='9'){
                continue;
            }else{
                return mark;
            }
        }
    }
    mark=1;
    return mark;
}

int main ()
{
    char table[100];
    int i=0;
    while((table[i] = getchar()) != '\n') i++;
    table[i] = '\0';
    int a=isint(table);
    printf("%d", a);
    return 0;
}

#include <stdio.h>
#include <string.h>
int isint(char x[])
{
    int mark = 1; // used for loop marking
    int i;
    for (i = 0; i < strlen(x); i++)
    { // check if it is a int
        if (x[i] >= '0' && x[i] <= '9')
        {
            continue;
        }
        else
        {
            mark = 0;
            break;
        }
    }
    return mark;
}
int main()
{
    char table[100], c;
    int i = 0;
    while((table[i] = getchar()) != '\n') i++;
    table[i] = '\0';
    int a = isint(table);
    printf("%d", a);
    return 0;
}