|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 ;
}
|
|