求助:超级素数的解法问题
//求[100,9999]间的超级素数#include "stdafx.h"
#include "stdio.h"
#include "math.h"
void main()
{
int i,j,k;
int flag;
int ss(int);
for(i=100;i<=9999;i++)
{
flag=0;
for(j=2;j<sqrt(i);j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag==0)
{
i=i/10;
k=ss(i);
}
}
}
int ss(int a)
{
int b,m;
int flag1;
flag1=0;
for(b=2;b<sqrt(a);b++)
{
if(a%b==0)
{
flag1=1;
break;
}
if(flag1==0)
{
a=a/10;
if(a>0&&a<10)
{
printf("%d为超级素数\n",a);break;
}
else
{
m=ss(int a);break;
}
}
}
}
错误是这样的:
Compiling...
ccc.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2144: syntax error : missing ')' before type 'int'
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2660: 'ss' : function does not take 0 parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2059: syntax error : ')'
Error executing cl.exe.
ccc.exe - 3 error(s), 0 warning(s)
请问错在哪里了??
----------------解决方案--------------------------------------------------------
没人知道吗?
----------------解决方案--------------------------------------------------------
把
else
{
m=ss(int a);break;
}
中的 m=ss(int a);break;改为 m=ss(a);break;
再加上返回值return可解决错误,但好像程序还是有问题的~~
----------------解决方案--------------------------------------------------------
看不懂你的问题
----------------解决方案--------------------------------------------------------
用TC打不开头文件,就做到了这个程度
#include "stdafx.h"#include "stdio.h"
#include "math.h"
void main()
{int i,j;
int flag;
int ss(int);
for(i=100;i<=9999;i++)
{flag=0;for(j=2;j<sqrt(i);j++)
{if(i%j==0)
{flag=1;break;}
}}
if(flag==0)
{i=i/10;
ss(i);}}
int ss(int a)
{int b;
int flag1;
flag1=0;
for(b=2;b<sqrt(a);b++)
{if(a%b==0)
{flag1=1;break;}
if(flag1==0)
{a=a/10;
if(a>0&&a<10)
{printf("%d为超级素数\n",a);
break;}
else
{
ss(a);break;}
}
}
}
----------------解决方案--------------------------------------------------------