for循环内的嵌套while语句

/* 求[351,432]之间所有既不能被3整除又不能被8整除的整数的和*/
#include<stdio.h>
void main()
{
int i,s=0;
for(i=351;i<=432;i++)
while((i%3!=0)&&(i%8!=0));
{s=s+i;}
printf("%d",s);
}
在vc6.0里怎么不会执行啊?

举个例子,在for语句里加入了while循环,如果while的条件满足,则执行下面的语句,然后跳出这个循环,然后执行下一个语句。

boll find=false; //定义一个布尔型的变量,初始值为false
for(int i=1;i<num;i++)
{
    while(b[0]!=a[i])
     {
     
        b[1]=a[i];
        count++;
        break;
        find = true;//while中做一个标记,break前,设置为true
    }
    //while外,for语句内加一句判断这个变量的代码
  if (find) 
     break;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-21
去掉while语句后的分号就可以了。
即将
while((i%3!=0)&&(i%8!=0));
{s=s+i;}
改为:
while((i%3!=0)&&(i%8!=0)) {s=s+i;追问

不行啊!

第2个回答  推荐于2017-10-13
while((i%3!=0)&&(i%8!=0));
应该是if条件句,用while的话,如何跳出循环呢?改过的程序:
#include<stdio.h>
void main()
{
int i,s=0;
for(i=351;i<=432;i++)
if((i%3!=0)&&(i%8!=0))
s=s+i;

printf("%d",s);
}追问

用while语句不行吗?

追答

可以啊,不过你的条件用的不对。这样的可以:
#include
void main()
{
int i=351,s=0;
while(i<=432)
{
if((i%3!=0)&&(i%8!=0))
s=s+i;
i++;
}
printf("%d",s);
}

本回答被提问者采纳
第3个回答  2011-05-21
这都成死循环了,应该是这样的
#include<stdio.h>
void main()
{
int i,s=0;
for(i=351;i<=432;i++)
if((i%3!=0)&&(i%8!=0))
s=s+i;
printf("%d",s);
}
第4个回答  2011-05-21
#include<stdio.h>
void main()
{
int i,s=0;
for(i=351;i<=432;i++){
while((i%3!=0)&&(i%8!=0)){
s=s+i;}
}
printf("%d",s);
}
把格式看好啊追问

你这个也不会执行啊!

追答

报什么错能说一下吗?

相似回答