这道C语言题目为什么答案错误。
#include<stdio.h>intmain(){intzs(intn);intsum=0,m,n,i,j;scanf("%d%d",&i,&j);for(m=i;m...
#include<stdio.h>
int main()
{
int zs(int n);
int sum=0,m,n,i,j;
scanf("%d %d",&i,&j);
for(m=i;m<=j;m++){
if((zs(m) == 1) && (sum != 0)){
printf(" %d",m);
sum++;
continue;
}
if((zs(m) == 1) && (sum == 0)){
printf("%d",m);
sum++;
}
}
if(sum == 0) printf("None");
return 0;
}
int zs(int n){
int flag=0,k,summ=0;
for(k=1;k<=n/2;k++){
summ += (n%k == 0?k:0);
}
flag = (summ == n?1:0);
return(flag);
} 展开
int main()
{
int zs(int n);
int sum=0,m,n,i,j;
scanf("%d %d",&i,&j);
for(m=i;m<=j;m++){
if((zs(m) == 1) && (sum != 0)){
printf(" %d",m);
sum++;
continue;
}
if((zs(m) == 1) && (sum == 0)){
printf("%d",m);
sum++;
}
}
if(sum == 0) printf("None");
return 0;
}
int zs(int n){
int flag=0,k,summ=0;
for(k=1;k<=n/2;k++){
summ += (n%k == 0?k:0);
}
flag = (summ == n?1:0);
return(flag);
} 展开
展开全部
循环应该是:
for(m=i;m<=j;m++)
而不是
for(m=i;m<j;m++)
for(m=i;m<=j;m++)
而不是
for(m=i;m<j;m++)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询