读书人

新手小题目请问异常

发布时间: 2012-06-25 18:37:39 作者: rapoo

新手小题目,请教错误
原题是写一个函数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("验证不成功");

}

[解决办法]

C/C++ code
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()少了取地址符&

读书人网 >C语言

热点推荐