想问一下 这个while循环求完数的程序错哪儿了?为什么只输出1呢。 急,在线等 = =
作者&投稿:沙苗 (若有异议请与网页底部的电邮联系)
是说完全数吧,
说几个你的代码里面的问题,
那个j<=i/2的判断是干嘛的,这里是要找小于i的因数,判断应该是 j<i;
那个s应该没次循环都要置零,你写在循环的外面是错的;
那个j=j+1的位置应该在循环的末尾,而不是在开头,要不然比如i=6,那么j=5也会进入循环,但是又加一就变成6了,和i相等了,同时前面的j=0换成j=1.
发一下我修改后的截图(代码就自己看着改吧,就不复制了)
while(t!=0)
{
t/10;//这里错了,你这样写t的值是不会变的。
digit++;
}
应该是t=t/10;或者t/=10.
#include <stdio.h>
int main()
{
int a=0,b=1,sum=0;
while(sum<1000)
{
if(sum%b==0)
{
a+=b;
}
b++;
if(a==sum)
{
printf("%d",sum);
}
sum++;
}
}
你的程序想要实现什么功能?
之所以只输出一次1,是因为除了sum=0的时候,sum总是比b小1.sum%b总是不等于0,所以a一直是1,而sum一直在增加。所以a一直无法等于sum,也就一直不会输出了
油彦女金: #include int main() { int a=0,b=1,sum=0; while(sum { if(sum%b==0) { a+=b; } b++; if(a==sum) { printf("%d",sum); } sum++; } }你的程序想要实现什么功能?之所以只输出一次1,是因为除了sum=0的时候,sum总是比b小1.sum%b总是不等于0,所以a一直是1,而sum一直在增加.所以a一直无法等于sum,也就一直不会输出了
成华区13736974329: 怎么通过while 或者for循环实现1000以内的完数?求详解. - ?
油彦女金: #include<iostream> using namespace std; int main() {int n=1000; int r=0,j,i; for(i=1;i<=n;i++) {r=0; for(j=1;j<i;j++) {if(i%j==0){r=r+j;}} if(r==i) {cout<<i<<endl;}} return 0; }
成华区13736974329: while 循环求完数 请问哪里有错? - ?
油彦女金: n++位置不正确. #include<stdio.h> void main() { int n=100; while (n<1000) { int i=1,s=0; while (i<n) { if(n%i==0) { s=s+i; } i++; } if (s==n) printf("%d\n",n); n++; } }
成华区13736974329: 用MATLAB的while循环求1 - 500内的完数,这个程序错在哪里了?请大神指教! - ?
油彦女金: 是说完全数吧,说几个你的代码里面的问题,那个j<=i/2的判断是干嘛的,这里是要找小于i的因数,判断应该是 j<i;那个s应该没次循环都要置零,你写在循环的外面是错的;那个j=j+1的位置应该在循环的末尾,而不是在开头,要不然比如i=6,那么j=5也会进入循环,但是又加一就变成6了,和i相等了,同时前面的j=0换成j=1.发一下我修改后的截图(代码就自己看着改吧,就不复制了)
成华区13736974329: JAVA 请教各位帮我做个while循环的题 - ?
油彦女金: public class Main { public static void main(String[] args) { int num[]={1,1,3,4,8,9,13}; int i=0,sum=0; while (i<num.length) sum+=num[i]; System.out.println(sum); } }******************************************************************* public class Main { public ...
成华区13736974329: 求运算结果(while语句循环) - ?
油彦女金: #include "stdio.h" main( ) { int x=0,y=0; while(x<5&&++y) {y--;x++;}//楼主这边是不是少了个大括号 啊 printf("%d,%d",y,x);} 输出结果是 0 5
成华区13736974329: 用while语句和if语句 表示1000内的完数 - ?
油彦女金: public class Test { public static void main(String[] args) { int num = 2; while (numint temp = 1; int sum = 0; while (tempif (num % temp == 0) { sum += temp; } temp++; } if(sum == num){ System.out.println(num); } num++; } } }
成华区13736974329: 用while循环求1 - 100的和并输出结果 - ?
油彦女金: 好像没有写java的,我给补充下吧. public class He { public static viod main(String [] args) { int a = 1,b=0; while(a<=100) { b=a+b; a++; } System.out.println("1-100的合是:"+b); } }采纳哦
成华区13736974329: 编写一个程序,要求使用while循环语句计算下面数字 - ?
油彦女金: int i=2; int sum=0; while(i编写一个程序,要求使用while循环语句计算下面数字
成华区13736974329: 关于一个c语言的问题,用while循环计算1 - 2+3 - 4+5 - 6+7 - 8...n - ?
油彦女金: a没有定2113义,并且你5261计算的是1+2+3+.... 不需要用到a,修改4102如下:1653 while (b < n) { b++; //使用三元运算符回,如果b是偶数,答则-b;否则+b sum += b % 2 == 0 ? -b : b; }