C博客作业01--分支顺序结构

时间:2023-07-28 14:47:56

1.展示PTA总分

C博客作业01--分支顺序结构

C博客作业01--分支顺序结构

2.本章学习总结

①C语言数据类型

C博客作业01--分支顺序结构

② if-else语句

if (条件)
{
语句A;
}
else
{
语句B;
}
  • 在if (条件)后不加“;”
  • 要用“{ }”将语句括起,使程序整洁且不易出错。
  • else是对最近的if的否定。

③输入输出函数

  • 函数scanf( )和printf( )可处理整型数据、浮点型数据、和字符型数据的输入与输出。
  • 表达式包括两个操作数和一个运算符时,在输入数值时不能在数与运算符之间出现空格,因为空格也算一个字符。
  • 字符输入函数getchar( )
    • 一般调用格式为ch=getchar( )即输入一个字符,赋予变量ch。
    • 只能读入一个字符,若需输入多个字符,需要多次调用,一般采用循环结构。,例如:

      char ch;

      for (i=0;i<0;i++)

      char=getchar( );
  • 字符输出函数putchar( )可输出一个字符,输出结果中字符两侧没有单引号。

④逻辑运算符

C博客作业01--分支顺序结构

  • 逻辑表达式的值是1或0即真或假。
  • 逻辑运算符&&和||的优先级低于关系运算级,即(ch>='a')&&(ch<='z')等价于ch>='a'&&h<='z'。

⑤switch语句

switch (表达式)
{
case 常量表达式A:语句段A;break;
case 常量表达式B:语句段B;break;
........
default:语句N;break;
}
  • 所有的常量表达式都不相等。
  • 表达式和常量表达式的值一般是整型或字符型。
  • 语句段可包括多条语句,也可为空。
  • 若无default,则什么都不执行。
  • case后只能等值判断,不能加条件。
  • 若无break,则程序会顺下去走一遍。

⑥宽度限定词

  • 整型数据:%md,m即输出宽度(包括符号位)
  • 实型数据:%m.nf,指定了输出浮点型数据时保留n位小数,且宽度为m。
  • 若数据小于m,左端补空格;若数据大于m,按实际位数输出。

⑦for语句

for (表达式A;表达式B;表达式C)
{
循环体语句;
}
  • for后无“;”。
  • 表达式A:赋初值。
  • 表达式B:条件。
  • 表达式C:变值。
  • 仅由一个“;”组成的语句称为空语句,什么也不做。

⑧常见数学函数

  • 平方根函数sqrt(x),如sqrt(4.0)的值为2.0。
  • 绝对值函数fabs(x),如fabs(-3.56)的值为3.56。
  • 幂函数pow(x,n),如pow(1.1,2)的值为1.21。

    -指数函数exp(x),如exp(2.3)的值为9.974182。
  • 以e为底的对数函数log(x),如log(123.45)的值为4.815836。
  • 调用数学函数要在加#include <math.h>

3.学习体会

我是被一路虐过来的,把书上的内容灵活地应用到实际操作中是真的魔鬼,PTA中的题目我能一遍就编对的不超过七道,但还好,比起刚开始我至少对C语言这玩意儿不会感到陌生了。总归还是得练,天天练,脑子才能慢慢适应C语言的思维方式。

C博客作业01--分支顺序结构

C博客作业01--分支顺序结构

4.PTA作业

①判断一个数是否为水仙花数

  • 数据处理:
    • N表示输入的三位数。
    • bit表示该数的个位数。
    • tan表示该数的十位数。
    • hundred表示该数的百位数。
    • 依题意,都是int整数型。
  • 代码截图:

C博客作业01--分支顺序结构

  • 本题可拓展内容:

    可进一步改进成输出所有符合水仙数规则的三位数。

    做法:加一个for循环节。
  • PTA提交列表及说明

C博客作业01--分支顺序结构

  • 第一次编译错误是忘了加scanf ("%d",&N);的“&”。
  • 第二次答案错误是我对“该数不是三位数时”的判断条件错误。

**②考研录取情况 **

  • 代码截图:

C博客作业01--分支顺序结构

  • 数据处理:
    • mathematics表示数学成绩。
    • english表示英语成绩。
    • politics表示政治成绩。
    • specializedCourse表示专业课成绩。
    • totalScore表示总成绩。
    • 依题意,均定义为int型。
  • 本题可拓展内容:

    可在输出A、B、C等级的同时输出该考生的各科成绩及总分,若有某科不达线,可重点标出。
  • PTA提交列表及说明

C博客作业01--分支顺序结构

  • 本题的部分错误源于我在判断B情况时只用了if而不是else if,导致判断C情况时只实现了对B情况的否定而没有否定A情况,因此会出现A、C同时出现的错误输出。

③特殊a串数列求和

  • 代码截图:

C博客作业01--分支顺序结构

  • 数据处理:
    • 依题意,将a、n定义为int型。
    • 定义i为int型,达到循环目的。
    • 定义t为int型,实现a到aa再到a⋯a(n个a)的变化,并依次赋值予t。
    • 定义s为int型,将每一次t的值相加,完成题目要求。
    • 本题可拓展内容:
      • 本题先设一个t将所有加数的值都暂时存储起来,再由s将其相加的思路,个人觉得很妙。

        C博客作业01--分支顺序结构
  • PTA提交列表及说明:

C博客作业01--分支顺序结构

- 本题错误在于我错误地理解了题意,将a⋯a(n个a)误认为n个a相乘,导致答案错误。问过度娘后才知道真相······
![](https://img2018.cnblogs.com/blog/1777822/201910/1777822-20191007103055934-229390510.jpg)

5.代码阅读

C博客作业01--分支顺序结构

C博客作业01--分支顺序结构

代码功能:计算出M个同样的苹果放在N个同样的盘子里(允许有空盘子)有多少种不同的分法。

优点:该程序的前提条件判断巧妙而灵活,符合实际生活,值得我们学习!