博客作业--分支、顺序结构
| 这个作业属于哪个班级 | 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;
}
本章学习体会
- 通过PTA的题目认识并且熟悉了关于顺序结构、分支结构和循环结构的一些题型,但是总体还是对于C语言程序设计的学习还在适应当中。
- 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中进行单步调试并且监视变量,然后进行逐语句调试即可找出错误点。