zoukankan      html  css  js  c++  java
  • c博客作业01分支、顺序结构

    0.展示PTA总分

    1 .顺序结构练习

    2 .选择结构

    1.本章学习总结

    1.1 学习内容总结

    • 数据类型
    1. int:整型数,取值范围-2147483648~+2147483648
    2. float 单精度浮点型,可以带有小数点,取值范围-3.4e38~+3.4e38
    3. double 双精度浮点型,取值范围-1.7e308~+1.7e308
    4. char 字符类型 ASCII表
    5. 当输入数据时应考虑数据的大小,来决定使用什么样的数据类型,以防止数据溢出。
    • 输入输出函数
    1. 首先需要一个编译预处理命令 #include<stdio.h> 来声明函数
    1. 格式化输出函数 printf(“......”);
      printf(格式控制字符串,输出参数1,...,输出参数n); 格式控制字符串用双引号括起来,表示输出的格式;而输出参数则是一些要输出的数据,这些数据可以是常亮、变量或表达式。
      --- 引用自《c语言程序设计》
      2.格式化输入函数 sca%nf(“......”,&......);
      scanf(格式控制字符串,输出参数1,...,输出参数n); 格式控制字符串表示输入的格式,输入参数是变量地址(变量名前加&)。
      输入参数的形式为:变量名前加&,如&x。
      --- 引用自《c语言程序设计》
    • 数学函数
    1. 首先需要一个编译预处理命令 #include<math.h> 来声明数学函数
    2. 平方根函数sqrt(x):计算√ x。如是sqrt(4.0)的值为2.0。
    3. 绝对值函数fabs(x):计算|x|.如fabs(-3.56)的值为3.56。
    4. 幂函数pow(x,n):计算x的n次方。如pow(1.1,2)的值为1.21。
    5. 指数函数exp(x):计算e的x次方。如exp(2.3)的值为9.974182。
    6. 以e为底的对数函数log(x):计算\lnx。如ln(123.45)的值为4.815836。
      --- 引用自《c语言程序设计》
    • if-else语句

    一般形式:

    if(表达式)
        语句1;
    else
        语句2;
    

    先求解表达式,如果表达式的值为“真”,则执行语句1;否则(即表达式的值为“假”),则执行语句2。语句1和语句2最多执行一个。
    举例:c02-选择结构 7-1 计算分段函数

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	float x,result;
    	scanf("%f", &x);
    
    	if (x >= 0) { result = sqrt(x); }
    	else result = pow(x+1,2)+2*x+1/x;
    
    	printf("f(%.2f) = %.2f", x, result);
    	return 0;
    }
    
    • switch语句
    switch (表达式)
        {
        case 常量表达式1:语句段1; break;
        …
        case 常量表达式n:语句段n;break;
        default:语句段n+1;break;
        }
    

    该语句的执行流程为:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式都不相等,则执行default后的语句段,最后执行break;语句,跳出switch语句。

    举例:c02-选择结构 7-9 成绩转换

    #include<stdio.h>
    int main()
    {
    	int achievement;
    	scanf("%d", &achievement);
    
    	switch (achievement / 10)
    	{
    	case 10:
    	case 9:
    		printf("A");
    		break;
    	case 8:
    		printf("B");
    		break;
    	case 7:
    		printf("C");
    		break;
    	case 6:
    		printf("D");
    		break;
    	default:
    		printf("E");
    		break;
    	}
    	return 0;
    }
    
    • for循环

    一般形式:

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

    for语句的执行流程是:先计算表达式1,再判断表达式2,若为“真”,则执行循环体语句,并接着计算表达式3,然后继续循环,若值为“假”,则结束循环,继续执行for的下一条语句。
    表达式1:初值表达式,对循环变量赋初值,从而指定循环的起点。
    表达式2:条件表达式,给出循环的条件,通常判断循环变量是否超过循环的终点。
    表达式3:步长表达式,这个表达式是单次循环结束后需要执行的语句。
    循环体语句:被反复执行的语句,只能是一条语句(或用大括号组成复合语句)。

    举例:c03-单循环结构 7-1 求交错序列前N项和

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int N;
    	int temp=1;
    	int i;
    	double sum=0;
    	scanf("%d", &N);
    
    	for (i = 1; i <= N; i++)
    	{
    		sum = sum + temp * (i *1.0/ (2 * i - 1));
    		temp = -1 * temp;
    	}
    	
    	printf("%.3f", sum);
    	return 0;
    }
    

    1.2 本章学习体会

    1. 通过这两周的学习,我从只会写“hello world”的小白,变成了会解决一些简单问题的菜鸟,虽然并没有质的变化,但是这是一个良好的开端。虽然说C语言是比较好学的,但那是相对于其他语言而言,对于C语言不能够掉以轻心,还是要认真学习。在打代码是总是因为一些细节而出bug,而解决这些bug的过程无疑是艰辛的,有时候一两个小时都无法解决,这对我的自信造成了沉重的打击,这时候我会承认自己的失败,去请教他人,来解决问题,学习是一个人的事情,但一个人不能很好地学习。
    2. 希望老师在课堂上可以多讲一些书本上没有的知识。
    3. 代码量统计:867行(每个程序减去两行大括号)

    2. PTA实验作业

    2.1 c02-选择结构 7-3 输出三角形面积和周长

    2.1.1 数据处理

    • 数据表达:
    1. int a,b,c; 储存三角形的边长。
    2. int area; 储存三角形的面积。
    3. int s; 中间量。
    4. int perimeter; 储存三角形的周长。
    • 数据处理:
      一个输入函数,一个if-else分支结构,两个输出函数。

    2.1.2 代码截图

    2.1.3 PTA提交列表及说明

    Q:s = (a + b + c)/ 2,计算结果为整数
    A:改为s = (a + b + c)*1.0 / 2。

    2.2 c02-选择结构 7-2 判断偶数

    2.2.1 数据处理

    • 数据表达:
    1. int a; 储存整数a。
    • 数据处理:
      一个输入函数,一个if-else分支结构,两个输出函数。

    2.2.2 代码截图

    2.2.3 PTA提交列表及说明


    Q:if(a%2)理解为偶数条件成立。
    A:当a为偶数时,a%2==0,在计算机中0为假。

    2.3 c03-单循环结构 7-10 jmu-c-二进制转10进制

    2.3.1 数据处理

    • 数据表达:
    1. double num2;存储二进制数字。
    2. int num10;存储十进制数字。
    3. int mask;存储num2的位数。
    4. int i;判断某个数字是否为二进制数字。
    • 数据处理
      一个输入函数,两个输出函数,一个while循环,两个if语句,一个switch选择结构。

    2.3.2 代码截图

    2.3.3 PTA提交列表及说明

    Q1:无论输入的数是否为二进制,都会输出num10。
    A1:在循环中当输入的数不为二进制时,mask=-1,并且,当mask!=-1时,输出num10。

    Q2:多个1无法通过编译。
    A2:int无法放下多个一,改用double。

    3. 代码阅读

    题目:输入某年某月某日,判断这一天是这一年的第几天?

    源代码

    选择这段代码的原因是我也做过这道题,但是代码十分冗长,因为对于闰年二月之后的月份天数的计算,我使用了另一个switch选择结构,但是这段代码是先将年份当做平年处理,最后再考虑闰年二月的特殊情况,这样子大大减少了代码量,也让我知道了做对题目并没有什么了不起,因为别人不仅做对了,而且做得更好。

  • 相关阅读:
    HDU 1000 A + B Problem
    HDU 3635 Dragon Balls
    HDU 3461 Code Lock
    HDU 1856 More is better
    HDU 1198 Farm Irrigation
    HDU 1325 Is It A Tree?
    HDU 1001 Sum Problem
    HDU 1829 A Bug's Life
    HDU 2610 Sequence one
    HDU 3350 #define is unsafe
  • 原文地址:https://www.cnblogs.com/chenlr/p/11627234.html
Copyright © 2011-2022 走看看