博客作业--分支、顺序结构

| 这个作业属于哪个班级 | C语言--网络2011/2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | C博客作业00--顺序分支结构 |
| 这个作业的目标 | 初步认识C语法,掌握数据表达、printf、scanf语法及分支结构内容 |

PTA总分展示

顺序结构

顺序结构

分支结构

分支结构

1.本章学习总结

1.1学习内容总结

分支结构

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

分支结构根据条件判断的结果选择所要执行的程序分支,其中条件可以用表达式(关系表达式或逻辑表达式)来描述。

随机函数

srand(time(0)) ;//先设置种子
rand();//然后产生随机数
Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的 了)。srand(time(0))就是给这个算法一个启动种子,也就是算法的随机种子数,有这个数以后才可以产生随机数。

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

void main ()
{
    int i;
    srand(time(0));
    for (i = 0; i < 10; i++)
    printf( "%6d", rand());
    return 0; 
}

编程技巧总结

取某一位数个位做法

# include <stdio.h>
int main ()
{
      int num,SingleDigits;
      SingleDigits=num%10;
      printf("%d\n",SingleDigits);
      return 0;
}

判断整除做法

例如判断一个数是否为偶数
#include<stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	
	if(a%2==0)
	printf("yes\n");
	else
	printf("no\n");
	
	return 0;
}

本章学习体会


  1. 通过PTA的题目认识并且熟悉了关于顺序结构、分支结构和循环结构的一些题型,但是总体还是对于C语言程序设计的学习还在适应当中。
  2. PTA大约刷了三十道题左右。

2.PTA实验作业

2.1前天是哪天(请教大佬得到)

2.1.1数据处理

  • 数据表达:定义整型变量year,month,day。
  • 数据处理:判断年份是否为闰年,并且运用了分支结构。

2.1.2代码截图

#include<stdio.h>
int main()
{
    int year, month, day;
    scanf("%d-%d-%d",&year,&month,&day);
    if (day > 2)
    {
        day = day - 2;
    }
    
    else
    {
        if (month == 5 || month ==7 || month ==8 || month ==10 || month ==12)
        {
            day = day - 2 + 30;
            month = month - 1;
        } 
		
		else if (month == 2 || month ==4 || month ==6 || month ==9 || month ==11)
        {
            day = day - 2 + 31;
            month = month - 1;
        } 
		
		else if (month == 1)
        {
            day = day - 2 + 31;
            month = 12;
            year = year - 1;
        } 
		
		else if (month == 3)
        {
            if (year % 4 == 0) 
            {
                if(year%100==0)
                {
                    if (year % 400 == 0)
                    {
                        month = month - 1;
                        day = day - 2 + 29;
                    } 
					
					else 
                    {
                        month = month - 1;
                        day = day - 2 + 28;
                    } 
                } 
				
					else
                	{
                    month = month - 1;
                    day = day - 2 + 29;
                	}
            } 
			
					else
            		{
                month = month - 1;
                day = day - 2 + 28;
            		}
        }
    }
    printf("%d-%d-%d", year, month, day);
    return 0;
}

2.1.3PTA提交列表及说明

前天是哪天

  • Q1:代码量很大,思路很混乱,没有找到突破口。
    A1:询问同学以后才开始有一些思路,自己尝试了一下。

  • Q2:if-else语句用得太多太混乱。
    A2:将"{}"合理分配,看起来更加清晰明了。

  • Q3:有两种特殊情况没有考虑。
    A3:首先是大月和小月,其次是闰年和平年。

2.2计算油费

2.2.1数据处理

  • 数据表达:定义整型变量a(加油量),b(汽油品种);定义字符型变量c(服务类型);定义双精度浮点型变量s(应付款额)。
  • 数据处理:先判断服务类型再判断汽油品种最后算出应付款额;运用了if-else分支结构。

2.2.2代码截图

int main()
{
int a,b;
char c;
double s;
scanf("%d %d %c",&a,&b,&c);
if(c=='m')     //服务类型c为自助 
{
if(b==90)     //加90号汽油 
{s=0.95*6.95*a;} 

if(b==93)     //加93号汽油 
{s=0.95*7.44*a;}

if(b==97)     //加97号汽油 
{s=0.95*7.93*a;} 
}
 
else if(c=='e')     //服务类型c为协助 
{
if(b==90)
{s=0.97*6.95*a;}

if(b==93)
{s=0.97*7.44*a;}

if(b==97)
{s=0.97*7.93*a;} 
}
printf("%.2f",s);
return 0;
}

2.2.3PTA提交列表及说明

计算油费

  • Q1:第一次答案错误在哪?
    A1:没有按相应的类型来划分导致答案出错。

2.3计算油费

2.3.1单步调试截图

计算油费

2.3.2代码截图

计算油费

2.3.3PTA提交列表及说明

计算油费

  • Q1:当答案错误时如何找出答案?
    A1:在VS中进行单步调试并且监视变量,然后进行逐语句调试即可找出错误点。
posted @ 2020-11-08 16:10  Lzwx2  阅读(152)  评论(0编辑  收藏  举报