帮我看看这个程序为什么运行不出结果

#include
int Prime(int pvar, int pnum) {
int i = 0;
int count = 0;

for (pvar = 2;; pvar++) {
    for (int i =2; i < pvar; i++) {
        if (pvar % i == 0) {
            break;
        }
    }
    if (pvar == i) {
        printf("%d", pvar);
        count++;
    }
    if (count == pnum) {
        break;
    }
}
return pnum;

}
int main()
{
int pvar = 2;
int pnum;
int prime = 0;
printf("请输入素数的数量:");
scanf("%d", &pnum);
if (Prime(pvar, pnum)) {
}
return 0;
}

改动处见注释,供参考:

#include<stdio.h>
void Prime(int pvar, int pnum) {
//int Prime(int pvar, int pnum) 修改
    int i = 0;
    int count = 0;
    for (pvar = 2;; pvar++) {
        for (i = 2; i < pvar; i++) {
        //(int i = 2; i < pvar; i++) 修改
            if (pvar % i == 0) {
                break;
            }
        }
        if (pvar == i) {
            printf("%d ", pvar); //修改
            count++;
        }
        if (count == pnum) {
            break;
        }
    }
    //return pnum;  修改
}
int main()
{
    int pvar = 2;
    int pnum;
    int prime = 0;
    printf("请输入素数的数量:");
    scanf("%d", &pnum);
    Prime(pvar, pnum);
    //if (Prime(pvar, pnum)) { 修改
    //}
    return 0;
}

把for循环那个int i 的int去了 试一试。循环外面已经有定义了, 作用域超出了后变量无效,