C05-3.22for循环
原题链接:37014.笔记汇总2025-03-29 14:44:40
发布于:安徽
一、练习回顾
假设用电量是 20
第1部分:不超过15的费用:15*0.47
第2部分:超过15但是不超过30的部分:(20-15)*0.89
总的费用是 将两个部分相加。
思考:如果输入的用电量是40,那么最终的费用分为3个部分,可以想想是哪3个部分?
最后需要注意题目要求的输出需要保留小数点后两位。
第1部分:不超过15的费用:15*0.47
第2部分:超过15但是不超过30的部分:15*0.89
第3部分:超过30的部分:(40-15-15)*1
总的费用是 将3个部分相加。
如果用电量是:x
第1档: x*0.47
第2档: (x-15)*0.89 + 15*0.47
第3档: (x-30)*1 + 15*0.47 + 15*0.89
参考程序
#include<iostream>
using namespace std;
int main()
{
double x, money;
cin >> x;
if (x > 30) //第三档
{
money = (x-30)*1 + 15*0.47 + 15*0.89;
}
else if (x > 15) //第二挡
{
money = (x-15)*0.89 + 15*0.47;
}
else //第一档
{
money = x*0.47;
}
printf("%.2lf", money);
return 0;
}
二、逻辑运算符
(回忆之前)算术运算符、比较运算符、 赋值运算符
三目运算符((1)?(2):(3))、双目运算符、单目运算符
1、逻辑与:&& , A and B
2、逻辑或:||, A || B
3、逻辑非:!, 取对立面 !0 = 1, !1 = 0
cin >>a >>b;
if (a >= 90 && b>=90 ){ //逻辑与表示同时成立
cout << "yes";
}
else{
cout << "no";
}
📝【重点】闰年的判断
不能单纯的只考虑4的倍数,比如1900年。1900/4 = 475,但是,不是闰年。
- 世纪闰年 y%400 == 0
- 普通闰年 y%4==0 && y%100 != 0
世纪闰年 || 普通闰年
if (y%400==0 || (y%4==0 && y%100!=0)) {
cout <<"闰年";
}
else {
cout <<"平年";
}
三、for循环
1、基本正向for循环
//1.初始值(只执行一遍), 2.循环条件, 3.步长
for (int i=1; i<=10; i++) //i = i+1自增, 自减 i--
{
cout << i << " 你最棒!\n";
//4.循环体,循环要做的事情
}
2、反向for循环
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i=n; i>=1; i--){ //反向for循环
cout << i << endl;
}
return 0;
}
3、实例练习
(1)高斯求和公式 计算1+2+3+...+n
1+2+3+4+5+6+7+8+9+10
(1+10)*10/2 = 55
//方法1:
cout << (1+n)*n/2 << endl;
//方法2:
int n, sum = 0;
cin >> n;
for (int i=1; i<=n; i++){
sum += i;//sum = sum + i;
}
cout << sum ;
(2)计算平均分
int n;
cin >> n;
int tmp;//存储临时分数
double sum = 0;//总分
for (int i=1; i<=n; i++){
cin >> tmp;
sum = sum + tmp;
}
printf("%.2lf", sum / n );
四、作业提示
【田忌赛马】思路提示
改变规则之后的田忌赛马比较简单,按照顺序比较即可,可以定义a、b、c输入时候之后表示齐王马的战力, 再定义三个变量x、y、z输入之后表示田忌马的战力, 注意规则中要求只要有一次胜利即可判定田忌胜利,所以x>a、y>b、z>这三个条件是 逻辑或 的关系。
【阶乘】思路提示
参考我们课堂上讲过的for循环进行累加的代码, 这份笔记中也是可以看到的,累加是将所有的数字进行了求和,但是这里是累乘,将所有的数字进行相乘。注意累乘的初始值不能为0,得为1。否则乘得最后的结果是0。
这里空空如也
有帮助,赞一个