|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
0. 请编写程序,计算出 1000 以内(不包含 1000)的自然数中,属于 3 或 5 的倍数的数字之和。
为什么我这个代码输出的是0啊?qaq
#include<stdio.h>
int main()
{
int i,j,sum3,sum1,sum2;
sum1=1;
sum2=1;
for(i=3;i<1000;i=i+3)
{
if(i%3==0)
{
sum1=sum1*i;
}
}
for(j=5;j<1000;j=j+5)
{
if(j%5==0)
{
sum2=sum2*i;
}
}
sum3=sum2*sum1;
printf("得数为%d",sum3);
}
兄弟,你的代码很多错误
你的代码- #include<stdio.h>
- int main()
- {
- int i,j,sum3,sum1,sum2;
-
- sum1=1;
- sum2=1;
-
- for(i=3;i<1000;i=i+3)
- {
- if(i%3==0)
- {
- sum1=sum1*i; // 这里为什么不是加法?题目要求数字之和啊!
- }
- }
- printf("\n");
- for(j=5;j<1000;j=j+5) // 为什么分开算 3 和 5 的倍数?假设 15(又可除整 3,也可除整 5)不就重复了?
- {
- if(j%5==0)
- {
- sum2=sum2*i; // 为什么是 i 不是 j 吗?
- }
- }
- printf("%d %d\n", sum1, sum2);
- sum3=sum2*sum1; // 为什么又用乘法?题目要求数字之和啊!
- printf("得数为%d",sum3); // 当然是 0,因为你用的是乘积,最后答案无限大,int(整数形态最大只能存放 2147483647,超过自然变成负数)
- }
复制代码
|
|