我这个程序错在哪里帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:49:48
计算[1,1000]之间能被6和8整除的数,求出:
按升序排列的第十个数,按升序排列的前是个数之和

#include<stdio.h>
main()
{
int a,b=0,c=0;
while(b<=10)
{
for(a=1;a<=1000;a++)
{
if(a%6==0&&a%8==0)
{b++;
c=c+a;
}
else
;
}
}
printf("前十项和=%d,第十项=%d",c,a);
getch();
}

你的逻辑思路有问题
在1-1000的区间中找符合某个条件的几个数,怎么会有两层循环?
明显应该是一个循环中找几次才对,看下面的程序
#include <stdio.h>
int main(void)
{
int a,b=0,c=0;
for(a=1;a<=1000;a++)
if(a%6==0&&a%8==0)
{
b++;
c=c+a;
if(b==10) break;
}
printf("前十项和=%d,第十项=%d",c,a);
getch();
return 0;
}

循环错了,你while循环中的for执行一遍之后才会再去判定b的数值,也就是当第二次判定b的数值的时候a已经从1到1000循环一次了。