c语言编程,写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。 帮忙看一下我写的是不

c语言编程,写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。
帮忙看一下我写的是不是错的很离谱。。帮忙指点喽

#include<stdio.h>
int main(int argc,char**argv)
{
    int sushu(int x);
    int a,m;
    scanf("%d",&a);
    m=sushu(a);//接收判断质数的结果,1为质数,0就不是质数
    if(m==1)
    {
        printf("$d is a prime",a);//输出质数
    }
    else
    {
        printf("%d is not  a prime",a);
    }
 }
 
 int sushu(int x)
 {
     int i;
     for(i=2;i<x;i++)//这个是按照你的思路来的(当然判断质数还有其他方法),不要从1 开始,因为任何整数都能整除1;任何数也能被他本身整除,所以也不要等于x;
     {
         if(x % i ==0)
         {
             return 0;//你的程序中break之后,return不会执行
         }
     }
     if(i == x) return 1;//如果是质数返回1
 }

可能是初学者吧

思路基本上是正确的

但是可能一些语法还没掌握

比如 

1.函数的返回值

2.for循环中break;

3.以及局部变量、全局变量作用域等

只要有耐心,c不难的,肯定能学好

追问

改了一下 还是运行不出来

T_T

追答

可以运行出来了吧?

追问

我们下课了

谢谢喽 上机的时候在试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-09
sushu函数中,应该是x%i==0 还有if语句为真,语言执行几条语句? 应该有{}
第2个回答  2014-12-09
有问题函数里面应该是:
int i,sushu=0;
for(i=2;i<x;i++)
{
if(x%i==0)
{
sushu=1;break;
}
}
return sushu;
第3个回答  2016-12-08
#include"stdio.h"
#include"math.h"
int prime(int n)
{for(int i=2;i<sqrt(n+1);i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{
int n;
scanf("%d",&n);
if(prime(n))
printf("%d是素数 ",n);
else printf("%d不是素数",n);
return 0;
}
第4个回答  2012-07-05
#include<stdio.h>
main()
{
int number;
printf("请输入一个正整数:\n");
scanf("%d",&number);
if(prime(number))
printf("\n %d 是素数",number);
else
printf("\n %d 不是素数",number);
}
int prime(number)/*此函数用于差别素数*/
int number;
{
int flag=1,n;
for(n=2;n<number/2 && flag==1;n++)
if(number%n==0)
flag=0;
return(flag);
}
相似回答