分别用for循环.while.dowhile现计算1到100之间所有非2.3.5倍数的和 的c语言

分别用for while do while 循环实现计算1到100之间所有非2.3.5倍数的和

/*

for循环 1268

do-while循环 1268

while循环 1268

Press any key to continue

*/

#include <stdio.h>

int Sum1() {
int n,sum = 0;
for(n = 1; n <= 100; ++n)
if(n%2 && n%3 && n%5)
sum += n;
return sum;
}

int Sum2() {
int n = 1, sum = 0;
do {
if(n%2 && n%3 && n%5)
sum += n;
++n;
}while(n <= 100);
return sum;
}

int Sum3() {
int n = 1,sum = 0;
while(n <= 100) {
if(n%2 && n%3 && n%5)
sum += n;
++n;
}
return sum;
}

int main() {
printf("for循环 %d\n",Sum1());
printf("do-while循环 %d\n",Sum2());
printf("while循环 %d\n",Sum3());
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-15
#include <stdio.h>
void main()
{
int sum=0,i;
//不能被2整除的特点就是不是偶数,每次增2得到奇数,减少循环次数
for(i=1;i<100;i+=2){
//判断条件,余数都不是0时,满足条件
if(i%5!=0 && i%3!=0)
                        //计算和
                        sum+=i;
}
printf("%d\n",sum);

sum=0;    //初始化
i=1;      //初始化
do{
if(i%5!=0 && i%3!=0)
sum+=i;
i+=2;
}while(i<100);
printf("%d\n",sum);

sum=0;
i=1;
while(i<100){
if(i%5!=0 && i%3!=0)
sum+=i;
i+=2;
}
printf("%d\n",sum);

}

第2个回答  2013-07-15
int sum=0;
for(int k=1;k<101;++k){
if((k%2)&&(k%3)&&(k%5))sum+=k;
}

int sum=0,k=100;
while(k){
if((k%2)&&(k%3)&&(k%5))sum+=k;
--k;
}

int sum=0,k=100;
do{
if((k%2)&&(k%3)&&(k%5))sum+=k;
}while(--k);
相似回答