15626723954 发表于 2020-5-10 17:28:14

刚学完第一阶段

第一阶段阶段考核完全不懂,没有解题思路,有没有大神讲解一下

永恒的蓝色梦想 发表于 2020-5-10 17:38:20

题发上来

15626723954 发表于 2020-5-10 17:57:04

0. 请编写程序,计算出 1000 以内(不包含 1000)的自然数中,属于 3 或 5 的倍数的数字之和。
10 以下的自然数中,属于 3 或 5 的倍数有 3, 5, 6, 9,它们的和是 23。

15626723954 发表于 2020-5-10 17:58:55

只学了这几种语句
if语句
switch语句和分支嵌套
while语句和do...while语句
for语句和循环嵌套
break语句和continue语句

liuzhengyuan 发表于 2020-5-10 20:08:33

15626723954 发表于 2020-5-10 17:58
只学了这几种语句
if语句
switch语句和分支嵌套


for 循环从 1 到 1000 枚举(这个你应该会的)
设一个变量叫 sum(初始值为 0,表示数字之和)
然后如果
if x % 3 == 0 || x % 5 == 0:
sum 就 加 x

sunrise085 发表于 2020-5-10 20:50:08

#include<stdio.h>
int main()
{
    int i,sum=0;
    for (i=0;i<1000;i++)
      if (i%3==0||i%5==0)
            sum+=i;
    printf("sum=%d\n",sum);
    return 0;
}

15626723954 发表于 2020-5-11 17:16:44

liuzhengyuan 发表于 2020-5-10 20:08
for 循环从 1 到 1000 枚举(这个你应该会的)
设一个变量叫 sum(初始值为 0,表示数字之和)
然后如 ...

能不能讲解你后面发的那一行代码

15626723954 发表于 2020-5-11 17:17:24

sunrise085 发表于 2020-5-10 20:50


能不能说一下if语句后面代码的意思

sunrise085 发表于 2020-5-11 17:23:29

15626723954 发表于 2020-5-11 17:17
能不能说一下if语句后面代码的意思

你基础学的不够扎实。需要好好学一下运算符~~
%是求余   ||是逻辑或
if (i%3==0||i%5==0)条件是:i能整除3或者i能整除5

15626723954 发表于 2020-5-11 17:35:00

sunrise085 发表于 2020-5-11 17:23
你基础学的不够扎实。需要好好学一下运算符~~
%是求余   ||是逻辑或
if (i%3==0||i%5==0)条件是:i ...

这条if语句里面的i是不是1000

sunrise085 发表于 2020-5-11 17:40:34

15626723954 发表于 2020-5-11 17:35
这条if语句里面的i是不是1000

i是1000的时候就退出循环了。。。。
你不知道for循环?
for循环,第一次i=0,之后每次i++,当i为1000的时候已经不符合条件了就退出循环了。
所以if中的i不可能是1000
提问题,请一次讲清楚。。。。

15626723954 发表于 2020-5-11 17:43:16

sunrise085 发表于 2020-5-11 17:40
i是1000的时候就退出循环了。。。。
你不知道for循环?
for循环,第一次i=0,之后每次i++,当i为1000 ...

我是要知道数套在里面怎么算出来的

sunrise085 发表于 2020-5-11 17:47:36

本帖最后由 sunrise085 于 2020-5-11 17:51 编辑

15626723954 发表于 2020-5-11 17:43
我是要知道数套在里面怎么算出来的

没明白你问的是什么意思
#include<stdio.h>
int main()
{
    int i,sum=0;
    for (i=0;i<1000;i++)//for循环,i初始值为0,循环结束条件是i>=1000,每次循环i++
      if (i%3==0||i%5==0)//if语句条件,若i是3的倍数或5的倍数,执行下面if语句块
            sum+=i;      //if语句块,sum=sum+i,若i满足以上条件,就进行加和
    printf("sum=%d\n",sum);//输出循环求和的结果
    return 0;
}
第一次循环,i=0,0是3 的倍数,if条件满足,执行sum+=i,sum=0+0=0
第二次循环,i=1,1既不是3的倍数,也不是5的倍数,if条件不满足,不执行sum+=i
第三次循环,i=2,2既不是3的倍数,也不是5的倍数,if条件不满足,不执行sum+=i
第四次循环,i=3,3是3 的倍数,if条件满足,执行sum+=i,sum=0+3=3
第五次循环,i=4,4既不是3的倍数,也不是5的倍数,if条件不满足,不执行sum+=i
第六次循环,i=5,5是5的倍数,if条件满足,执行sum+=i,sum=3+5=8
……

15626723954 发表于 2020-5-11 18:01:16

本帖最后由 15626723954 于 2020-5-11 18:12 编辑

sunrise085 发表于 2020-5-11 17:47
没明白你问的是什么意思

第一次循环,i=0,0是3 的倍数,if条件满足,执行sum+=i,sum=0+0=0

sunrise085 发表于 2020-5-14 10:48:31

本帖最后由 sunrise085 于 2020-5-14 10:51 编辑

@ba21 版主,帮忙评个最佳,题主解决问题后就不见了。。版主帮个忙
页: [1]
查看完整版本: 刚学完第一阶段