博客园作业

微笑、不失礼 提交于 2019-12-01 10:14:34

 

一. 制作思维导图

二.语法认识

1.if—else

if(条件1)
{
  语句1;
}
else
{
  语句2;
}

注意:1.if表达式后面只管一句话,可以省略掉{};如果if表达式后面需要管多句话,则必须加{}

      2.else后面不要加分号,else后面不要加小括号

2.switch

switch(整形表达式)
{ 
    case 常量表达式1:  语句1;break;
    case 常量表达式2:  语句2;break;
    … 
    case 常量表达式n:  语句n;break;
    default:  语句n+1;

}

注意:1.case后面必须跟常量,必须要常量

           2.使用switch-case中不应忽视的是在每个case后处理完后写上break;语句

3.for

for(表达式1; 表达式2; 表达式3)
{
    循环体语句
}

注意:1.for循环的代码不仅可以写一句,也可以写多句

            2.for循环的三个部分都可以省略。第一部分省略表示不初始化;第二部分省略表示不判断,默认值为true;第三部分省略表示省略后什么也不执行。

4.while

while(循环条件)
{
    循环体语句
}

注意:for与while比较

for循环
循环控制变量的初始化和修改都放在语句头部分,书写形式较简洁,且适用于循环次数已知的情况。在循环语句中定义一个局部变量,循环结束后,局部变量就被释放了。

while循环
循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。

两种形式各有优点,但它们是等价的,可以相互转换。

5.do-while

do
{
    循环体语句
}while(循环条件);

注意:while和do-while的区别

 

   相同点:

     1.是循环结构,使用“while(循环条件)”表示循环条件,使用大括号将循环操作括起来。

        不同点:

            1.语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了一个do关键字,后面多了一个分号。

            2.执行次序不同。While循环先判断,再执行;do-while循环先执行,再判断。

            3.一开始循环条件就不满足的条件下,while循环一次都不会执行,do-while循环则不管在什么情况下都至少执行一遍。

6.break

switch(整形表达式)
{ 
    case 常量表达式1:  语句1;break;
    … 
    case 常量表达式n:  语句n;break;
    default:  语句n+1;

}

for(表达式1; 表达式2; 表达式3)
{
    语句1;
     continue;
    语句2;
        
}

注意:1.每个 case都写 break,其实没有这样的必要
      2.不能忘记了 case后面要写一个 break,否则其结果是多个 case不能互斥,按顺序执行。
三.pta分数截图

 

四. pta代码分析

 

#include <stdio.h>
int main(){
    int n,i;
    double sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum += 1.0/i;
    }
    printf("sum = %.6f",sum);
    return 0;
}

思路:

第一步:定义变量sum为总和,i为循环语句中的次数;

第二步:根据题意锁定公式s=s+i;

第三步:i++循环,输出总和sum。

注意:

1:对于n,i,sum的类型定义

2:输出的值保留的位数

收获:对于for循环的简单应用

#include <stdio.h>
int main() {
    int n=0, a=0;
    scanf("%d", &n);
    if (n < 0) {
        a = -1;
    }
    else if (n > 0) {
    a = 1;
    }
    else {
    a = 0;
    }
    printf("sign(%d) = %d", n, a);
    return 0;
}

思路:

 第一步:确定题目的范围数量

 第二步:选择最优的解决方案

注意:如果题目不止一个范围可以用else if再继续写条件,直到满足题意

收获:简单掌握if语句的用法

#include <stdio.h>
int main()
{
  int N,i;
  int flag=-1;
  double s=0;
  scanf("%d",&N);
  for (i=1;i<=N;i++)
  {
    flag=-flag;
    s=s+i/(2.0*i-1.0)*flag;
  }
  printf("%.3lf",s);
  return 0;
}

思路:

1.定义变量N,i,flag=1,浮点型变量s;

2.找出通项公式s=s+i/(2*i-1)乘以(-1)的n次幂;

3.(-1)的n次幂不太会就相应换成变量flag,让fiag=-flag循环与公式相乘——把公式放入循环语句中须在(i=1;i<=N;i++)的条件下。

注意:

遇到的问题:不知道怎样才能输入‘+’ ‘—’连续的循环式子?

解决方法:网上搜索如何在定义一个变量flag,让flag=-flag放在循环语句中就可以实现。

收获:对for循环语句有基本了解

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!