新手小题目,请教错误
原题是写一个函数prime(int x),如果是素数,返回1,否则返回0;并用主函数进行验证
# include <stdio.h>
int prime (int x) /*定义prime()*/
{
int n;
for (n=2;x%n!=0;n++) /*直到x除以n的余数为0的时候结束循环*/
; /*缺省的循环体语句*/
if(n<x) return (1); /*如果x是素数,返回数值1*/
else return (0); /*如果x不是素数,返回数值0*/
}
main()
{
int x,n;
scanf("%d",x);
for(n=2;x%n!=0;n++) /*直到x除以n的余数为0的时候结束循环*/
; /*缺省*/
if prime (x)==(n<x) /*调用函数prime(),如果prime(x)的值和n<x的值相等*/
printf("验证成功\n\n");
else
printf("验证不成功");
}
[解决办法]
int prime (int x) /*定义prime()*/{int n;for (n=2;n<=sqrt(x);n++) /*直到x除以n的余数为0的时候结束循环*/if(x%n==0)break; if(n>sqrt(x)) return (0); /*如果x不是素数,返回数值0*/else return (1); /*如果x是素数,返回数值1*/}
[解决办法]
主函数也有错,scanf()少了取地址符&