C06-3.29while循环
原题链接:37014.笔记汇总2025-03-30 15:23:56
发布于:江苏
上次课作业回顾
阶乘求和,其实跟for循环累加是大同小异的程序。
#include<iostream>
using namespace std;
int main(){
int n,sum;
cin >>n;
sum=1;
for(int i = 1;i<=n;i++){
sum*=i;
}
cout <<sum;
return 0;
}
一、自增自减运算符
i++, i--, --i,++i
// ++i: 先+1再使用
// i++: 先使用再+1
// 独立一行使用的时候没有影响
int i=4;
// i++; // i = i+1 自增运算+1
// int a = i++;
int a = ++i;
cout << a << endl; //4,5
cout << i << endl; //5
for (int i=1; i<=10; i++){
cout << i << ' ';
}
二、复合赋值运算符
=
+=, -=, *=, /=, %=
a += b // a = a + b
a *= b-c
//右边是一个整体, 先进行计算
a = a * (b-c)
int a = 10, b = 5, c = 2;
a *= b + c;
cout << a << endl; //70
三、break 与 continue
for (int i=1; i<=10; i++){
if ( i == 6){
continue; //跳过本次循环 输出1 2 3 4 5 7 8 9 10
// break; //跳出当前的循环 输出 1 2 3 4 5
}
cout << i << ' ';
}
四、while 与do while
条件循环格式:
while(){
}//先判断条件
do{
}while (); //注意分号
//不管条件成不成立,先执行一次循环体,再判断条件
int i=11;
while (i<=10){ //当 条件满足 的时候执行 , 不满足则不执行
cout << i << endl;
i++;
}
//先做再判断条件
do{
cout << i << endl;
i++;
}while (i <= 10);//输出11,之后条件不成立不再输出
五、课堂练习
实例1: 找最大值
打擂台:
先假设一个擂主,其他的均作为挑战者,一一与当前的擂主进行比较,如果比擂主还要大,那么就讲擂主更新为当前的挑战者。循环结束,即可找到最大值。最小值同理。
#include <iostream>
using namespace std;
int main()
{
//打擂台找最值
int n, t;
int maxx = -999999; //擂主
cin >> n;
for (int i=1; i<=n; i++){
cin >> t; //挑战者
//若挑战者 t大于擂主, 那么该挑战者t变为擂主 maxx
if (t > maxx) {
maxx = t; //更新擂主
}
}
cout << maxx;
return 0;
}
实例2: 统计数量
读懂题目的输入输出意思就很简单的,一一的比较然后进行统计即可。
#include<iostream>
using namespace std;
int main(){
int n, m, t;
int cnt = 0;//计数变量,初始值为0
cin >> n >> m;
for (int i=1; i<=n; i++){
cin >> t;
if (t == m){
cnt ++;
}
}
cout << cnt;
return 0;
}
实例3: 数位分解
while循环的经典操作。因为不知道循环具体执行的次数,这里使用条件循环最合适不过了,条件就是n不为0的时候进行取位数,取到年n为0的时候结束循环。
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
while (n != 0){
cout << n%10 <<' ';
n /= 10; //n = n / 10;
}
return 0;
}
六、作业提示
T1:输出数字1-n中所有的奇数
也可以使用for循环完成效果,判断奇数i%2==1就可以输出了, for循环里面套一个if就可以解决了。
T2:输出所有因子
得明确一个概念就是因子,题目也有解释。其实跟上题是一样的,因子就是n%i==0,即可以整除n的数字都是因子。
T3:寻找最大最小值
打擂台的运用了。 可以把上面的打擂台笔记部分好好的理解一下先。注意最小值的初始值应该是一个比较大的数字。
T4:质数判定
质数的约数只有两个,就是1和它本身。比如:2、3、5、7、11、13...这些数字的约数只有1和它本身。需要注意的是最小的质数是2。
可以定义一个计数变量cnt=0, 用来统计n的约数个数,如果 n%i == 0, 则i就是n的一个约数,则cnt++, 循环结束之后再判断cnt==2是否成立,如果是的,那么就是质数, 否则就不是质数。
这里空空如也
有帮助,赞一个