C语言 1到100的奇数和 但是没有3的倍数数字和

如题所述

按照你题目,我的理解是要数字满足1到100奇数且不是3的倍数,将这些数字求和。

写个不一样的:

#include <stdio.h>
#define MAX 100//最大数值
int main()
{
    int sum3=0,n3=1;
    while(n3<MAX)
    {
        if(n3%3!=0)
            sum3+=n3;
        n3=n3+2;
    }
    printf("1到100的奇数和 但是没有3的倍数数字和:%d\n",sum3);
    return 0;
}

另外:如果只是想要奇数和,也有其他写法,比如:

sum表示1到100数字和,其中奇数偶数个数各50,每个偶数都比前一个奇数大1,所以偶数总和比奇数总和大50,所以奇数总和直接可以用(sum-100/2)/2)表示。

#include <stdio.h>
#define MAX 100//最大数值
int main()
{
    int sum=0,n=1;
    while(n<=MAX)
        sum+=n++;
    printf("1到100的奇数和:%d\n",(sum-MAX/2)/2);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-27

C语言实现以上统计,参考代码如下:

#include<stdio.h>
int main()
{
int i,sj=0,s3=0;
for(i=1;i<=100;++i){
if(i%2!=0){
sj+=i;
if(i%3!=0)
s3+=i;
}
}
printf("奇数和为%d,其中不是3的倍数的和为%d",sj,s3);
return 0;
}

追答

运行结果如下:

第2个回答  2019-03-27
#include <stdio.h>
void main( )
{
int i = 0 , odd_sum = 0 , times3 = 0 ;

for( i = 1 ; i <= 100 ; i ++ )

{

if( ( i % 2 ) != 0 )

odd_sum += i ; /* 如果 i 为奇数的话,则把 i 的值进行累加,并存入变量 odd_sum 中 */

if( ( i % 3 ) == 0 )

times3 += i ; /* 如果 i 是 3 的倍数的话,则把 i 的值进行累加,并存入变量 times3 变量中 */

}
printf("odd_sum is: %d\ttimes_3_sum is:%d\n", odd_sum, times3 ) ;

}
第3个回答  2019-03-27
#include<stdio.h>
void main() { int i,s;
  s=0;
  for ( i=1;i<=100;i++ ) { if ( i%2==1 && i%3!=0 ) s+=i; }
  printf("%d\n",s);
}

第4个回答  2019-03-27
int sum=0;
for(int i=1;i<100;i+=2){
if(i%3!=0){
sum=sum+i;
}
}
相似回答