c语言,编程,不知道哪里错了,感觉没错....

图片说明
这个代码是错误的,我只是想输入一个数字,然后提示是不是素数而已,现在出错了,我没有看懂错在哪里,大神指点下


现在可以了,已经解决

#include<stdio.h>
int ok_or_no(int a)
{
            int i;
            if(a==2)
            {
                return 0;
            }
            a=(int)a/2+1;
            for(i=2;i<a;i++)
            {
                    if(a%i==0)
                    {
                            return 1;
                    }
            }
            if(a>1)
            return 0;
            else return 1;
}
int main()
{

    int even_my=0;
    scanf("%d",&even_my);
    if(ok_or_no(even_my))
    {
        printf("%s","这不是个素数\n");
    }
    else
    {
        printf("%s","这是个素数\n");
    }

    return 0;
}


函数int ok_or_no(int a):int a=0;与形参 int a 重定义了

int ok_or_no(int a)
{

a=(int)a/2+1;
int i=0;
for(i=2;i<a;i++)
{
    if(a%i==0)
    {
        return 1;
    }
}
return 0;

}

*函数声明放main前;应该先定义变量再运算,还有函数参数a与定义的a重复了

#include <stdio.h>

int ok_or_no(int a);

int main()
{
    int even_my=0;
    scanf("%d",&even_my);
    if(ok_or_no(even_my))
    {
        printf("%s","这不是个素数\n");
    }
    else
    {
        printf("%s","这是个素数\n");
    }

    return 0;
}
int ok_or_no(int a)
{
    int i=0;
    a=(int)a/2+1;

    for(i=2;i<a;i++)
    {
        if(a%i==0)
        {
            return 1;
        }
    }
    return 0;
}