求完全平方数的编程
答案:5 悬赏:0 手机版
解决时间 2021-01-21 09:53
- 提问者网友:你独家记忆
- 2021-01-20 17:30
求完全平方数的编程
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-01-20 19:07
C语言里面没有连续比较x
for语句里面最多有2个分号,一条语句有多个表达式请用逗号分开
比如for(x=1,y=2,z=3;x 你这程序写得太复杂了,你可以思考另一种算法
for语句里面最多有2个分号,一条语句有多个表达式请用逗号分开
比如for(x=1,y=2,z=3;x
全部回答
- 1楼网友:老鼠爱大米
- 2021-01-20 22:59
1printf括号中的i不用取地址符号,只有scanf才用取地址符号
2第一个for循环中间的判断条件应该是i〉0不是n>0
3第二个for循环x++和y++后面加的是逗号不是分号
4第一个if括号里面不能用分号可以使用&
2第一个for循环中间的判断条件应该是i〉0不是n>0
3第二个for循环x++和y++后面加的是逗号不是分号
4第一个if括号里面不能用分号可以使用&
- 2楼网友:琴狂剑也妄
- 2021-01-20 21:38
这不是完全平方数
第七行不能x
第八行if里面不应该有分好
输出不应该有&
你这个思路不对
语言错了太多,好好看看书追问那这个完全数的题该怎么做啊···追答#include
int main()
{
int i,j,n,sum;
scanf("%d",&n);
if (n<6) printf("None\n"); else
{
for (i=1;i<=n;i++)
{
sum=0;
for (j=1;j if (i%j==0) sum+=j;
if (i%2==0&&sum==i) printf("%d\n",i);
}
}
}
看到楼下代码那么冗长忍不住打了==还是比较简单的,看看就明白了,不明白再问
- 3楼网友:等灯
- 2021-01-20 20:38
for循环参数有问题,自加用","分隔,不要用";"
if中的判定用“&&”做与运算,";"不对
以上是语法问题,至于你的逻辑,也很乱啊,稍微等一下,我理理思路#include
int iswanshu(int n)
{
int i,j,count ;
i=count=0 ;
j=n ;
while(i!=1)
{
i=n/2 ;
if(n%2!=0)
i++;
if(j%i!=0)
{
return 0 ;
}
if((i%2)!=0&&i>1)
count++;
n=i ;
}
if(count>0)
{
return 1;
}else{
return 0;
}
}
int checkagain(int n)
{
int i,sum ;
sum=0 ;
for(i=1;i
if(n%i==0)
sum=sum+i ;
}
if(sum==n){
return 1 ;
}else{
return 0 ;
}
}
printwanshu(int n)
{
int i ;
i=0 ;
printf("%d its factors are ",n);
while(i!=1)
{
i=n/2 ;
if(n%2!=0)
i++;
printf("%d,",i);
n=i ;
}
printf(" ");
}
main()
{
int i,n ;
while(1)
{
printf("本程序将实现输出1-n之间的完数,n>=1 现在请输入n:");
scanf("%d",&n);
printf("你输入的数是%d ",n);
if(n>=1)
break ;
}
for(i=1;i<=n;i++)
{
if(iswanshu(i)==1&&checkagain(i)==1)
printwanshu(i);
}
}追问那这个完全数的题该怎么做啊···追答就上面的代码,自己看吧,哪里看不懂了再问
- 4楼网友:患得患失的劫
- 2021-01-20 19:19
#include
int main(){
int n,i,x,y,z;
printf("please key number:");
scanf("%d",&n);
for(x=1;x for(y=1;y for(z=1;z for(i=1;i<=n;i++){
if((i==x+y+z)&&(x printf("\n%d=%d+%d+%d",i,x,y,z);}
}
}
}
}
return 0;
}
我自己测试过了,你的代码确实错误太多了,
这个代码是。你输入一个数,将显示小于这个数的所有
的 可以实现n=x+y+z 不知道是否是你想要的结果
这个代码也算是用你的代码修改过来的,
还有一个发代码的,代码真够长的,
int main(){
int n,i,x,y,z;
printf("please key number:");
scanf("%d",&n);
for(x=1;x
if((i==x+y+z)&&(x
}
}
}
}
return 0;
}
我自己测试过了,你的代码确实错误太多了,
这个代码是。你输入一个数,将显示小于这个数的所有
的 可以实现n=x+y+z 不知道是否是你想要的结果
这个代码也算是用你的代码修改过来的,
还有一个发代码的,代码真够长的,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯