【发布时间】:2015-01-24 04:51:35
【问题描述】:
具体问题见link
在这里,我定义了三个函数,称它们为相互的。 函数调用未完成
#include<stdio.h>
int primegen(int x1,int x2);
int isprime(int j);
int main(){
int x,n1,n2,i;
printf("Enter the number of test cases:");
scanf("%d",&x);
for(i=0;i<x;i++){
printf("enter the starting point and ending point:");
scanf("%d %d",&n1,&n2);
primegen(n1,n2);
}
return 0;
}
int primegen(int x1,int x2){
int k;
if(x2>x1){
for(k=x1;k<x2;k++){
if(isprime(k))
{
printf("%d",k);
}
}
return 0;
}
}
int isprime(int j){
int i,c=0;
for (i=1;i<=j;i++)
{
if(j%i==0){
c++;
}
if(c!=2){
return 0;
}
else{
return 1;
}
}
}
输出
此代码没有输出。
【问题讨论】:
-
正确格式化和缩进你的代码,解释你的问题,输入,输出和预期输出。
-
使用铅笔和纸,写下
isprime中每行发生的情况,当 j 为 7 时。它会返回您期望的结果吗? -
即使在更正之后,您的代码也会在 SPOJ 上超时。你需要更好的算法。
-
这里的输出是:进程返回0 执行时间:6.912
标签: c