顺序与分支结构
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));
注意点:
- if语句判断时==容易打成=
- 对&&和||的应用容易出错
1.2编程技巧
- 取三位数的个位
a=x%10 - 数据交换
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时,月份应跳回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