疫情学习第二天:C++

本文深入讲解了程序设计中的三种基本控制结构:顺序、选择和循环。涵盖了if语句、三目运算符、switch语句的选择结构,以及while、do...while、for循环的循环结构,包括嵌套循环的应用。此外,还介绍了break、continue和goto等跳转语句的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在取模运算的时候,小数不可以进行取模运算。只有整型变量才可以进行取模运算
上午:目标:24-41

4 程序流程结构

三种程序运行结构:顺序、选择、循环
顺序:程序按照顺序进行,不发生跳转
选择:依据条件是否满足,选择执行
循环:依据条件是否满足,循环执行

4.1选择结构
4.1.1 if 语句

1.单行:if (条件){}

if(score>600)
{
	cout << "一本" <<endl;
}

注意if后面不要加分号,加上分号,if白写
2.多行if if(条件){}else{}

if(score>600)
{
	cout << "一本" <<endl;
}
else
{
	cout <<"二本" << endl;
}

3.多条件语句if if(条件1){条件一满足执行的语句}else if(条件2){条件2满足的执行语句}else{都不满足}
4.嵌套if语句:达到更精准的条件判断

4.1.2 三目运算符

进行简单的判断 c = (a > b ? a:b)//a和b比较。把变量值较大的赋值给c
1?2:3
1真执行2
1假执行3
三目运算符返回的是变量,可以对变量再进行赋值的操作
(a > b ? a:b)= 100
把较大的变量赋值为100

4.1.3 switch
switch(表达式)
{
	case 结果1:执行语句;breakcase 结果2;执行语句;break;
	……
	default:执行语句;break}

例子
注意每个分支都要打上一个break

switch (score)
{
case 10:
	cout << "经典电影" << endl
	break;//退出当前的分支
case 9:
	cout << "经典电影" << endl
	break;
default :
	cout << "laji" <<endl
	break;
}

switch()里面只能放一个整型或者字符型,不能进行一个区间的判断
优点:结构很清晰,执行效率高。
case里面必须有break

4.2 循环结构
4.2.1 while循环

while(循环条件){}
只要循环条件为真就执行循环语句

while (num<10)
{
	cout << num << endl;
	num++ ;
}

添加随机数种子,作用利用当前系统时间生成随机数,防止每次的随即数都一样。
#include < ctime >
srand( (unsigned init)time(NULL) )

#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned init)time(NULL));
int num = rand() % 100 + 1;
//cout << num << endl;
int val = 0//玩家输入的数据
int counter = 0
while (counter<2)
{
counter++;//超过n次就不能执行
cin >> val;
if (val > num)
{
	cout<<"猜测过大"<< endl;	
} 
else if(val < num)
{
	cout<<"猜测过小"<< endl;
}
else 
{
	cout<<"猜测正确"<< endl;
	break;//用关键字来退出当前的循环
}

}
symstem("pause");
return 0;
}
4.2.2 do while 循环语句

满足循环条件执行循环语句
do{循环语句} while(循环条件)
先执行一次循环语句,再判断满不满足循环条件。
输出0-9的数字
while后面要加逗号

int num = 0;
do
{
	cout << num << endl;
	num ++;
}
while(num<10);
案例:水仙花数

水仙花数是一个3位数,每个位的数字3次幂之和等于他本身

#include <iostream>
using namespace std;
int main()
{
int i = 100;
int gewei = 0;
int shiwei = 0;
int baiwei = 0;
do{
baiwei = i/100;
shiwei = (i - baiwei*100)/10;
gewei = i%10;
if (baiwei^3+shiwei^3+gewei^3 == i)
{
	cout << i << endl
}
i++;
}
while (i < =999);
symstem("pause");
return 0;
}
4.2.3 for 循环语句

满足循环条件执行循环语句
for(起始表达式;条件表达式;末尾循环体){循环语句};

//第一种,写一行比较整洁
for (int i = 0;i<10;i++)
{
}
//第二种
int i = 0 ;
for(;;)
{
	if(i>=10)
	{
		break;
	}
	cout << i << endl;
	i++;
}

先i=0,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
注意用分号隔开

#include <iostream>
using namespace std;
int main()
{
for(int i = 0;i<100;i++)
{
int gewei = 0;
int shiwei = 0;
int yushu = 0;
gewei = i%10;
shiwei = i/10;
yushu = i/7
if(gewei == 7||shiwei==7||yushu==0)
{
cout<<"敲桌子<<endl;
}
else
{
cout<<i<<endl;
}
}
symstem("pause");
return 0;
}

答案的代码

for (int i = 1;i<=100;i++)
{
if(i%7==0||i%10==7||i/10==7)
{
cout<<"敲桌子"<<endl;
}
else
{
cout<<i<<endl;
}
}
4.2.4嵌套循环

外层执行一次,内层执行一周

for(int j=0;j<10;j++)
{
	for (int i=0;i<10;i++)
	{
		cout<<"*"<<" ";
	}
	cout << endl;
}
案例乘法口诀表
#include <iostream>
using namespace std;
int main()
{
for (int j = 1;j<10,j++)
{
	for (int i = 1;i<j;i++)
	{
		cout<<i<<"*"<<j<<"="<<(i*j)<<" ";
	}
	cout<<endl;
}
symstem("pause");
return 0;
}
4.3 跳转语句
4.3.1 break语句

用于跳出选择结构或者循环语句
1.switch
2.循环语句中

for()
{
if (i==5)
{
break;
}
}

3.出现在嵌套语句中

4.3.2 continue语句

在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

//奇数输出,偶数不输出
for()
{
if (i%2==0)
{
continue;//可以作为筛选条件,执行到此就不再往下执行了,执行下一次循环
}
cout<<i<<endl
}
4.3.3 goto语句

可以无条件跳转语句
如果标记的名称存在的时候,执行到goto语句的时候,会跳转到标记的位置。

goto FLAG;

FLAG:

平时不会使用。

疫情统计与预测系统 1.基本要求: [1]编写一个新冠肺炎疫情统计与预测系统,实现对不同国家不同城市的疫情情况的管理,并根据前若干天的新增病例数及现存病例,预测当天的新增病例数。 [2]城市疫情信息包括:国家名称、城市名称、疫情数据(新增病例数、现有病例数、累计病例数、治愈病例数、死亡病例)以及新增病例的预测结果,疫情预测模型的辨识以及疫情的预测通过成员函数实现。 2.基本管理功能: [1]城市添加:增加一个城市,并输入(或从文件中读入)这个城市的所属国家及疫情数据。 [2]国家(城市)修改:修改已经选择的国家(城市)。 [3]国家(城市)删除:删除已经选择的国家(城市)。 [4]疫情预测:预测已选城市的新增病例数。 [5]打印功能:以表格形式打印全部城市疫情信息。 [6]统计功能:所有城市疫情数据可以分别按照新增病例数、现有病例数、累计病例数、治愈病例数、死亡病例数从高到低排序并打印,并可通过选择不同国家来查看该国家的所有城市累计疫情数据 新增病例数、现有病例数、累计病例数、治愈病例数、死亡病例)。 [7]信息保存:将全部城市疫情信息保存到不同的文件中(数据库文件或普通文本文件)。 3.其他要求及说明: [1]要求系统至少包含3个国家,每个国家至少包含10个城市,每个城市至少保存30天的数据,疫情信息可以上网查,也可自己输入合理数据。 [2]当日新增病例数采用时间序列方法预测,即根据前面n天的平均新增病例数x1, x2, …, xn预测当天的新增病例数y,即采用如下的预测模型: y = a0 + a1·x1 + a2·x2 + … + an·xn 其中系数a0, a1, a2, …, an需要根据历史数据,编写算法求得(可采用最小二乘法)。模型中的参数n要求大于10,可以设为固定值,也可以由用户自己设定。 [3]鼓励大家自己采用其他的预测模型。 [4]鼓励大家设计更多的系统功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值