• c语言博客,顺序与分支结构


    顺序与分支结构

    pta顺序与分支结构作业展示


    1.学习总结

    1.1

    if case 语句
    if语句
    单分支
    if(条件)
    {
    (语句块)
    }
    双分支
    if (条件)
    {
    (语句块);
    }
    else
    {
    (语句块);
    }
    多分支
    if(条件)
    {
    (语句块)
    }
    else if (条件)
    {
    (语句块)
    }
    else
    {
    (语句块)
    }
    switch语句
    switch (表达式的值)
    { case 1: 语句1 break;
    case 2: 语句2 break;
    case 3: 语句3 ...
    default:
    }
    函数
    幂函数:pow(x,n)
    平方根:sqrt(x)
    绝对值:fabs(x)
    随机函数:srand(time(0));
    注意点:

    1. if语句判断时==容易打成=
    2. 对&&和||的应用容易出错

    1.2编程技巧

    1. 取三位数的个位
      a=x%10
    2. 数据交换
    if (a > b) {
    temp=a;
    a = b;
    b = temp;
    }
    

    1.3

    目前内容比较简单,暂无困惑
    300行左右

    2.pta作业

    2.1前天是哪天

    2.1.1

    定义year,month,day,输入年月日,用y,m,d表示减去两天后的时间

    2.1.2

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

    2.1.3

    第一次提交

    #include <stdio.h>
    int main()
    {
    	int year;
    	int month;
    	int day;
    	int d, m, y;
    	scanf("%d-%d-%d", &year, &month, &day);
    	if (year / 4 == 0 && year / 100 != 0 || year / 400 == 0)
    	{
    		d = day - 2;
    		if (d > 0)
    		{
    			m = month;
    			y = year;
    			printf("%d-%d-%d", y, m, d);
    		}
    		else
    		{
    			if (month == 3)
    			{
    				d = day + 29 - 2;
    				m = month - 1;
    				y = year;
    				printf("%d-%d-%d", y, m, d);
    			}
    			if (  month == 2 || month == 4 || month == 6 || month == 8 || month == 9||month == 11)
    			{
    				d = day + 31 - 2;
    				m = month - 1;
    				y = year ;
    				printf("%d-%d-%d", y, m, d);
    			}
    			if (month == 1)
    			{
    				d = day + 31 - 2;
    				m = month - 1;
    				y = year - 1;
    				printf("%d-%d-%d", y, m, d);
    			}
    			else
    			{
    				d = day + 30 - 2;
    				m = month - 1;
    				y = year ;
    				printf("%d-%d-%d", y, m, d);
    			}
    		}
    	}
    	else
    	{
    		d = day - 2;
    		if (d > 0)
    		{
    			m = month;
    			y = year;
    			printf("%d-%d-%d", y, m, d);
    		}
    		else
    		{
    			if (month == 3)
    			{
    				d = day + 28 - 2;
    				m = month - 1;
    				y = year;
    				printf("%d-%d-%d", y, m, d);
    			}
    			if (month == 2 || month == 4 || month == 6 || month == 8 || month == 9 || month == 11)
    			{
    				d = day + 31 - 2;
    				m = month - 1;
    				y = year;
    				printf("%d-%d-%d", y, m, d);
    			}
    			if (month == 1)
    			{
    				d = day + 31 - 2;
    				m = month - 1;
    				y = year - 1;
    				printf("%d-%d-%d", y, m, d);
    			}
    			else
    			{
    				d = day + 30 - 2;
    				m = month - 1;
    				y = year;
    				printf("%d-%d-%d", y, m, d);
    			}
    		}
    	}
    	return 0;
    }
    
    存在的问题
    1. 发现闰年的判断应该用%而不是/
    2. 在月份为1且天数小于2时,月份应跳回12

    2.2 计算油费

    2.2.1 数据处理

    定义字符型变量service用于输入服务类型,定义浮点型变量money,sum用于计算价钱,定义整形变量oil,fuel表示油的类型和数量

    2.2.2 代码截图

    2.2.3 提交列表

    答案正确

    2.3单步调试的使用

    2.3.1单步调试的过程



    2.3.2代码截图

    2.2.3 pta提交过程

    第一次提交

    代码

    错误原因

    经单步调试后发现,不应将m赋值为100

    最终答案

    代码

  • 相关阅读:
    每天读一下,你就会改变
    C++ 反转字符串(原创)
    C++ string学习
    18种常见室内花卉的功效 (转自网络)
    UML建模教程
    孙鑫视频VC++深入详解学习笔记
    visual C++ 6.0开发工具与调试
    C++ typeid typename使用
    C++模板学习
    Working classes Code complete reading notes(6)
  • 原文地址:https://www.cnblogs.com/f2002/p/13942468.html
Copyright © 2020-2023  润新知