用C语言判断素数输出0或1,这是我编的,也是运行输完数字按回车后什么都没有

如题,帮我看看错在哪里,以及告诉我如何改,谢谢各位好人!
#include "stdio.h"
int main()
{
int panduan(i);
int k,i;
printf("请输入一个数让系统判断是否为素数:\n");
scanf("%d",&k);
k=panduan(i);
if(k)
{printf("1");}
else
printf("0");
return 0;
}
int panduan(int k)
{
int j=0;
for(j=0;j<=k/2;j++)
if(k%j==0)
k=0;
else
k=1;

return k;
}

你好!!注意篮圈的地方,j 的值,是从2 开始循环的,除数不能是 0 

    

完整的代码是:

#include "stdio.h"
int main()
{
 int panduan(int k);
 int k,i;
 printf("请输入一个数让系统判断是否为素数:\n");
 scanf("%d",&k);    // 输入参数 k
 k=panduan(k);      // 传入参数 k,返回值给 k
 if(k>0)            // 根据返回值,判断是不是素数
 {printf("1");}
 else
 printf("0");
 return 0;
}
 int panduan(int k)
 {
 int j=0;
 for(j=2;j<=k/2;j++) // 从 2 开始循环
 if(k%j==0)
 {
     k=0; 
     break;         // 不是素数跳出
 }
return k;   
 }


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-09
#include "stdio.h"
int main()
{
  int panduan(int k);//声明应该这样 
   int k=1,i; 
    printf("请输入一个数让系统判断是否为素数:\n");
    scanf("%d",&i); //输入量应该是i 
 k=panduan(i); 
 if(k)
   printf("1");
 else 
  printf("0"); 
 return 0;

 int panduan(int k) 

 int j;
 for(j=2;j<=k/2;j++)//从2开始 
  if(k%j==0) 
  {k=0;  break;}//要跳出循环 +上break 
 if(k)
  return 1;//循环结束后再判定标志变量返回值 
 else
  return 0; 
}