0.展示PTA总分


1.本章学习总结

1.1 学习内容总结

1.if 语句

适用需要判断条件再执行的情况

if(条件)

{

执行的语句

}
条件中 &&表示同时满足——和,||表示或者。

2.if-else 语句

主要适用于需要分段的情况

if(条件)

{

执行的语句

}

else{

执行的语句

}//跟if的括号里的条件相反的情况
3.if-if else 语句

if(条件)

{

执行语句

}else if (除第一个if之外条件)

{

}else if (除第一第二个条件之外的条件)

{

}else {}//除上面提及的条件之外的条件

4.if 的嵌套

if 的执行语句可以用if

5.switch语句

switch(表达式)//必须为整形
{case 1:
case 2:
default:
//输入值则跳转到该值的case语句执行,以break 结束跳出switch,否则按顺序继续执行下一条,default为除case 的条件之外的数。
}

2.随机数


srand(time(0)) ;//先设置随机种子 ,为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值。
rand()%100;//然后产生随机数 ,范围为0~99;

函数预处理:

#include <stdlib.h> 
#include <stdio.h> 
#include <time.h> 

3.数据输入输出类型

字符型 | 占用的字节空间 | 输入 | 输出

  • | - | - | -
    int(整形) | 4 | %d | %d
    double(双精度浮点数) | 8 | %lf | %f
    float(单精度浮点数) | 4 | %f | %f
    char(字符型) | 1 | %c | %c

1.2 编程技巧总结

1.取某个数的个位数
用%10来取。

2.判断整除做法


#include<stdio.h>
int main()
{
	int Rabbitdis, Tortoisedis;
	int T;
	scanf("%d", &T);
	Tortoisedis = 0;
	Rabbitdis = 0;
	for (int t = 1; t <= T; t++) {
		Tortoisedis = 3 * t;
		Rabbitdis += 9;
		if (t % 10 == 0 && Rabbitdis < Tortoisedis) {//用%10来判断过了十分钟,则再次判断此时兔子跟乌龟的距离
			t += 30;


		}


	}
	Tortoisedis = T * 3;

	if (Tortoisedis > Rabbitdis)printf("@_@ %d", s1);
	if (Rabbitdis > Tortoisedis)printf("^_^ %d", s2);
	if (Tortoisedis == Rabbitdis)printf("-_- %d", s1);


	return 0;
}

3.利用判断条件来控制最后不输出空格

念数字的题目

#include<stdio.h>
int count(int x){
    int cnt = 1;
    while (x > 9) {
        x /= 10;
        cnt *= 10;

    }return cnt;
}
int main()
{
    int n;
    int m;
    int x;
    scanf("%d", &n);
    if (n < 0) { printf("fu "); n = -n; }
    int c = count(n);
    for(int i;c>0;i++)
    {
       
        m = n/c;
        n %= c;
        switch (m)
        {
        case 0:
            printf("ling");
            break;
        case 1:
            printf("yi");
            break;
        case 2:
            printf("er");
            break;
        case 3:
            printf("san");
            break;
        case 4:
            printf("si");
            break;
        case 5:
            printf("wu");
            break;
        case 6:
            printf("liu");
            break;
        case 7:
            printf("qi");
            break;
        case 8:
            printf("ba");
            break;
        case 9:
            printf("jiu");
            break;
           
        }
        if (c > 9) { printf(" "); }
        c /= 10;
    }
       
    return 0;
}

1.3 本章学习体会

1.学习感受:许多细节的用法不了解,比如如何在最后一格不取0,和ASCII码的运用等等。这需要多花时间去了解学习跟实践。
2.这周代码量只有500~600行,相对往周较少,还是要多抽时间来刷题,相对多的代码量,才能加强编程技巧和编程能力。

2.PTA实验作业

2.1 前天是哪天

2.1.1 数据处理

用int 定义 year,month,day 三个变量。
其中先判断day-2的大小,来判断月份是否有变,
再根据变的月份来判断变的日,跟年。

2.1.2 代码截图

2.1.3 PTA提交列表及说明


说明:Q1:讨论的条件太多致使逻辑较为混乱
A1:,导致每次的判断并不全面,此时可用&&,||来使代码量减小,且代码更为全面。
Q2:思路逻辑的复杂
A2:其实只需判断好几个特殊的条件便可:如闰年跟非闰年,月份3月到2月,如果是闰
年则是29天的2月,非闰年则是28天的2月,还有个是有31天和30天两种的月份的跨度。

2.2 自选一题

2.1.1 数据处理


定义一个字符型变量c和整形变量count,再在循环中输入以此来判断类型,如果为非空格则count+1,来统计字符量。

2.1.2 代码截图

2.1.3 PTA提交列表及说明


最大的问题出在
如果用每次输出"数量 ”来控制格式,如果后方有空格然后‘.’则难以避免,所以我在第二个循环里,加上第一个循环来把第一个单词的字符数先统计出来输出"数字"。
如果还有第二个则输出则输出" 数字”来控制格式。

2.3 自选一题,介绍单步调试如何检查错误

2.3.1 单步调试截图

1.在scanf后设置断点进入调试


2.输入样例
3.开始逐过程调试

第一次进入default分支,则为97号汽油

第二次进入分支判断服务类型为m
之后则输出计算出来的数值。

 posted on 2020-11-08 12:42    阅读(154)  评论(0编辑  收藏  举报