| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
为什么运行结果会比正确答案大很多嘞?       
 
- #include<stdio.h>                
 
 - #define n 1000
 
  
- int main()
 
 - {
 
 -         int i, j, k ;
 
 -         int m, b, p ;
 
 -         int sum=0;
 
  
-         m = n / 3;                                                          
 
 -         for(i=1 ; i<=m ; i++)
 
 -         {
 
 -                 sum += i*3 ;
 
 -         }
 
 -         
 
 -         b = n / 5 ;
 
 -         for(j=1 ; j<=b ; j++)
 
 -         {
 
 -                 sum += j*5 ;
 
 -         }
 
 -         
 
 -          p  = n / 15;
 
 -         for(k=1 ; k<=p ; k++)
 
 -         {
 
 -                 sum -= k*15 ;
 
 -         } 
 
 -         printf("1000以内自然数,属于3或5的倍数的数字之和为 %d\n",sum);
 
 -         
 
 -         return 0 ;
 
 -         
 
 - }
 
  复制代码 
把数全打印出来了,感觉没什么问题 
 
#include<stdio.h> 
#define n 1000 
 
int main() 
{ 
        int i, j, k ; 
        int m, b, p ; 
        int sum=0; 
 
        m = n / 3; 
        for(i=1 ; i<=m ; i++) 
        { 
                sum += i*3 ; 
        } 
 
        b = n / 5 ; 
        for(j=1 ; j<=b ; j++) 
        { 
                sum += j*5 ; 
        } 
 
         p  = n / 15; 
        for(k=1 ; k<=p ; k++) 
        { 
                sum -= k*15 ; 
        } 
        printf("1000以内自然数,属于3或5的倍数的数字之和为 %d\n",sum); 
        sum=0; 
        m=n; 
        do 
        { 
            if(m%3==0) 
                k=m; 
            else if(m%5==0) 
                k=m; 
            else 
                k=0; 
            if(k) 
                printf("%4d",k); 
            sum+=k; 
            m--; 
        }while(m); 
        printf("\n1000以内自然数,属于3或5的倍数的数字之和为 %d\n",sum); 
        return 0 ; 
} 
 
 
 |   
 
 
 
 |