C语言 输出m,n之间全部回文素数,5 <=am< n<= 100,000)我写的程序错在哪了?
#include<stdio.h>intflag,x;intHW(int);intisPrime(int);intHW(intx){intnum,s,y=0;scanf(...
#include <stdio.h>
int flag,x;
int HW(int);
int isPrime(int);
int HW(int x){
int num,s,y=0;
scanf("%d", &num);
s=num;
while(s>0){
y=y*10+s%10;
s=s/10;
}
if(y==num){
flag=1;
}else{
flag=0;
}
}
int isPrime(int x)
{
int i;
if(x<=1) return 0;
for(i=2;i<x;++i)
if(x%i==0) flag=1;
flag=0;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
for(x=m;x<=n;x++) {
if(flag==1) printf("%d\n",x);
}
return 0;} 展开
int flag,x;
int HW(int);
int isPrime(int);
int HW(int x){
int num,s,y=0;
scanf("%d", &num);
s=num;
while(s>0){
y=y*10+s%10;
s=s/10;
}
if(y==num){
flag=1;
}else{
flag=0;
}
}
int isPrime(int x)
{
int i;
if(x<=1) return 0;
for(i=2;i<x;++i)
if(x%i==0) flag=1;
flag=0;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
for(x=m;x<=n;x++) {
if(flag==1) printf("%d\n",x);
}
return 0;} 展开
展开全部
错的地方都作了更改:
#include <stdio.h>
int isPrime(int);
int HW(int x)
{ int s,y=0;
s=x;
while(s>0)
{ y=y*10+s%10;
s=s/10;
}
if(y==x)
{ return 1;
}
else
{ return 0;
}
}
int isPrime(int x)
{ int i;
if(x<=1) return 0;
for(i=2; i<x; ++i)
if(x%i==0) return 0;
return 1;
}
int main()
{ int m,n,x;
scanf("%d%d",&m,&n);
for(x=m; x<=n; x++)
{ if(isPrime(x) && HW(x)) printf("%d\n",x);
}
return 0;
}
更多追问追答
追问
谢谢你 为什么在第二行先定义flag和x就无法输出呢?
还有一个问题 if(a==b|b<a)是什么意思
展开全部
#include <stdio.h>
bool HW(int x)
{
int s,y=0;
s=x;
while(s>0)
{
y=y*10+s%10;
s=s/10;
}
if(y==x) return true;
else return false;
}
int main()
{
int m,n,e;
printf("Pls Put in the value of m and n:\n");
scanf("%d%d",&m,&n);
if(m>n)
{
e=n;
n=m;
m=e;
}
printf("%d 到 %d 的回文数为:\n",m,n);
for(int x=m;x<=n;x++)
{
if(HW(x)) printf("%d\n",x);
}
return 0;
}
你的代码混乱,函数没有返回值,主函数没有调用函数,好好理解下函数吧
bool HW(int x)
{
int s,y=0;
s=x;
while(s>0)
{
y=y*10+s%10;
s=s/10;
}
if(y==x) return true;
else return false;
}
int main()
{
int m,n,e;
printf("Pls Put in the value of m and n:\n");
scanf("%d%d",&m,&n);
if(m>n)
{
e=n;
n=m;
m=e;
}
printf("%d 到 %d 的回文数为:\n",m,n);
for(int x=m;x<=n;x++)
{
if(HW(x)) printf("%d\n",x);
}
return 0;
}
你的代码混乱,函数没有返回值,主函数没有调用函数,好好理解下函数吧
追问
if(a==b|b<a)是什么意思
追答
#include
bool HW(int x)
{
int s,y=0;
s=x;
while(s>0)
{
y=y*10+s%10;
s=s/10;
}
if(y==x) return true;
else return false;
}
bool isPrime(int x)
{
int i;
if(xn)
{
e=n;
n=m;
m=e;
}
printf("%d 到 %d 的回文数为:\n",m,n);
for(int x=m;x<=n;x++)
{
if(HW(x))
if(isPrime(x)) printf("%d\n",x);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询