一、PTA实验作业

题目1:7-1 计算分段函数[2]

1.实验代码

    float  x, y;
printf("Enter x:\n");
scanf("%f", &x);
if(x>=0)
{
y=sqrt(x);
}
else
{
y=pow(x+1,2)+2*x+1.0/x;
}
printf("f(%.2f)=%.2f", x, y);
return 0;

2.设计思路

  • 1、定义两个浮点型变量x与y分别表示自变量与函数值;
  • 2、输入x;
  • 3、判断x>=0是否为真,是则 y=sqrt(x),否则y=pow(x+1,2)+2*x+1.0/x;
  • 4、按照要求的输出格式输出 x 与 y

3.本题调试过程碰到问题及解决办法

  • 问题1:使用pow()函数时,将参数位置写反了,把指数写在了底数的位置,底数则写成了指数,导致计算结果出错。

解决方法:发现在计算x>=0的情况时,计算无误,所以把错误定位在x<0的情况,由于是纯计算题,变量的类型定义也没有问题,所以确定问题出在计算x的表达式上。计算语句只有一条,所以没有调试,直接检查表达式后发现是写pow()函数时将参数位置写反,改正后运行程序,得到正确结果。

4.本题PTA提交列表

题目2:7-4 输出三角形面积和周长

1.实验代码

    int   a, b, c;
float s, area, perimeter;
printf("Enter a、b、c:\n");
scanf("%d%d%d", &a, &b, &c);
if(a+b<=c||a+c<=b||b+c<=a)
{
printf("These sides do not correspond to a valid triangle\n");
}
else
{
s=(float)(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area = %.2f; perimeter = %.2f\n",area, perimeter);
}
return 0;

2.设计思路

  • 1、定义3个整型变量a,b,c表示三角形的三条边长,定义3个浮点型变量s,area和perimeter分别表示计算面积要用到的替代变量、面积、周长;
  • 2、输入a,b,c;
  • 3、如果a+b<=c||a+c<=b||b+c<=a,输出"These sides do not correspond to a valid triangle",否则s=(a+b+c)/2;
  • 4、area=sqrt(s(s-a)(s-b)*(s-c));
  • 5、perimeter=a+b+c;
  • 6、按要求输出area、perimeter

3.本题调试过程碰到问题及解决办法

没有遇到问题。

4.本题PTA提交列表

题目3:7-6 出租车计价

1.实验代码

    float  Mileage, WaitExp, Dricost;
int WaitTime;
scanf("%f%d", &Mileage, &WaitTime); if(WaitTime>0&&WaitTime<5)
{
WaitExp=0;
if(Mileage>0&&Mileage<=3)
{
Dricost=10;
}
else if(Mileage>3&&Mileage<=10)
{
Dricost=10+((Mileage-3)*2);
}
else if(Mileage>10)
{
Dricost=24+(Mileage-10)*3;
}
} else if(WaitTime>=5)
{
WaitExp=(WaitTime/5)*2;
if(Mileage>0&&Mileage<=3)
{
Dricost=10;
}
else if(Mileage>3&&Mileage<=10)
{
Dricost=10+((Mileage-3)*2);
}
else if(Mileage>10)
{
Dricost=Dricost=24+(Mileage-10)*3;
}
}
printf("%.0f", WaitExp+Dricost);
return 0;

2.设计思路

  • 1、定义3个浮点型变量 Mileage, WaitExp, Dricost分别表示行驶路程、等待费用和行驶费用,定义一个整型变量WaitTime表示等待时间;

  • 2、若0<WaitTime<5,0<Mileage<=3,则WaitExp=0,Dricost=10;

  • 3、若0<WaitTime<5,3<Mileage<=10,则WaitExp=0,Dricost=10+((Mileage-3)*2);

  • 4、若0<WaitTime<5,Mileage>10,则WaitExp=0,Dricost=24+(Mileage-10)*3;

  • 5、若WaitTime>=5,0<Mileage<=3,则WaitExp=(WaitTime/5)*2,Dricost=10;

  • 6、若WaitTime>=5,3<Mileage<=10,则WaitExp=(WaitTime/5)2,Dricost=10+((Mileage-3)2);

  • 7、若WaitTime>=5,Mileage>10,则WaitExp=(WaitTime/5)2,Dricost=24+(Mileage-10)3;

  • 8、输出WaitExp+Dricost

3.本题调试过程碰到问题及解决办法

  • 问题1:这一题在编写C语言的过程没有问题,拿到题目后思考了一下确定切入点是等待时间,然后分等待时间小于或等于五分钟和大于五分钟两种情况切入选择条件。遇到问题是在寻找计算关系时,就是计算当等待时间大于五分钟,形式路程超过十公里时的行驶费用时不怎么能理解题目的意思,草稿纸上算了几遍才得到一个算式能算出答案,此间还寻求了室友帮助(我觉得这是数学问题了

    C语言--分支结构的更多相关文章

    1. C语言分支结构之if else语句

      前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条.第三条……一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...

    2. iOS学习02C语言分支结构

      1. BOOL类型 返回值:真:YES  假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为tr ...

    3. iOS学习之C语言分支结构

      一.BOOL类型 返回值:真:YES   假:NO 定义一个布尔类型的变量 YES == 1, NO == 0 计算机在识别时,YES就替换成1,NO就替换成0 BOOL isGirl = YES; ...

    4. c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)

      1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...

    5. 【C语言学习】-02 分支结构

      本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...

    6. C语言第01次作业--顺序、分支结构

      1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周我学到了很多C语言中基础的结构和语法(见思维导图),能对一些生活中的简单问题对应编写程序解决一些这些简单 ...

    7. c语言第一次作业--顺序、分支结构

      1.1思维导图 1.2.1本周学习体会以及代码量学习体会 1.2.2学习体会     因为在暑假时候没有对c语言进行学习,没太关注一些学习资料,一些教学视频也没看,感觉对c语言是陌生的,刚开课的时候自 ...

    8. c语言博客作业——顺序结构,分支结构

      1.PTA截图 2.本章学习总结 2.1学习内容总结 数据的输入和输出:%d表示输入输出整数 %.lf表示输入浮点数 %.nf表示输出结果保留n位小数 if-else的分支结构可以有限个分类情况进行处 ...

    9. [C语言入门笔记]分支结构与数组

      分支结构与数组 什么是分支结构? 分支结构是用户或者程序可以选择下一步执行哪个语句 分支结构有哪些? If If Else If Else If Switch 在初学者的学习过程中第一种和第二种比较普 ...

    随机推荐

    1. jQuery.proxy(function,context)

      jQuery.proxy(function,context) 概述 jQuery 1.4 新增.返回一个新函数,并且这个函数始终保持了特定的作用域.大理石平台检定规程 当有事件处理函数要附加到元素上, ...

    2. 安裝開源BBS軟件YAF時碰到的問題

      1.下載 http://yetanotherforum.net/download.aspx 安裝說明 http://www.drreddys.com/quest/readme.htm 其實只要打開根目 ...

    3. java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

      在pom.xml文件中添加如下依赖: <!-- https://mvnrepository.com/artifact/cn.easyproject/orai18n --> <depe ...

    4. vue中插槽(slot)的使用

      刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...

    5. MySQL数据分析-(14)表补充:字符集

      大家好,我是jacky朱元禄,很高兴继续跟大家学习<MySQL数据分析实战>,本节课程jacky分享的主题是表补充之字符集 在分享课程之前,jacky在跟大家强调一下逻辑的重要性,我们学习 ...

    6. sqlserver 存储过程的新建与执行

      if Exists(select * from sysobjects where NAME = 'insert_custominfo' and type='P') drop procedure ins ...

    7. hdu6736(寻找最小环)

      题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6736 题意: 在给定图中寻找所有最小环 保证不存在一条边经过两个简单环 数据范围: $1\leq n ...

    8. 消息中间件MQ

      消息中间件MQ:为方便预览,将思维导图上传至印象笔记,博客园直接上传图片受限于图片大小 https://app.yinxiang.com/shard/s24/nl/27262531/c3e137a5- ...

    9. ubuntu下如何安装hg(mercurial)?

      答:  sudo apt-get install mercurial

    10. android指纹识别认证实现

      Android从6.0系统支持指纹认证功能 启动页面简单实现 package com.loaderman.samplecollect.zhiwen; import android.annotation ...