C++基础入门
C++初识
第一个程序
头尾部
#include <iostream>
using namespace std;
int main()
{
system("pause");
return 0;
}
hello world
#include <iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
system("pause");
return 0;
}
注释
单行注释
- // 描述信息
- 通常放在一行代码的上方,或者—条语句的末尾,对该行代码说明
多行注释
- /* 描述信息 */
变量
作用:给一段指定的内存空间起名,方便操作这段
内存语法:数据类型 变量名 = 初始值 ;
#include <iostream>
using namespace std;
int main()
{
// 变量的定义
// 语法:数据类型 变量名 = 初始值
int a = 10;
cout << "a = " << a << endl;
system("pause");
return 0;
}
常量
作用:用于记录程序中不可更改的数据
- #define宏常量:
#define 常量名 常量值
- const修饰的变量
const 数据类型 常量名 = 常量值
- 通常在变量定义前加关键字const。修饰该变量为常量,不可修改
#include <iostream>
using namespace std;
/*
常量的定义方法
1、#define 宏常量
2、const修饰的变量
*/
//1、#define 宏常量
#define day 7
int main()
{
//day = 14; //错误,day是常量,一旦修改就会报错
cout << "一周总共有:" << day << "天" << endl;
//2、const修饰的变量
const int month = 12;
//month = 24; //错误,const修饰的变量也称为常量
cout << "一年总共有:" << month << "个月份" << endl;
system("pause");
return 0;
}
关键字
作用:关键字是C++中预先保留的单词(标识符)
asm | do | if | return | typedef |
---|
auto | double | inline | short | typeid | bool | dynamic_cast | int | signed | typename | break | else | long | sizeof | union | case | enum | mutable | static | unsigned | catch | explicit | namespace | static_cast | using | char | export | new | struct | virtual | class | extern | operator | switch | void | const | false | private | template | volatile | const_cast | float | protected | this | wchar_t | continue | for | public | throw | while | default | friend | register | true | | delete | goto | reinterpret_cast | try | |
标识符命名规则
作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则
- 标识符不能是关键字
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须为字母或下划线
- 标识符中字母区分大小写
数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
整型
作用:整型变量表示整数类型的数据。
数据类型 | 占用空间 | 取值范围 |
---|
short(短整型) | 2字节 | (-2^15 ~ 2^15-1) | int(整型) | 4字节 | (-2^31 ~ 2^31-1) | long(长整形) | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) | long long(长长整形) | 8字节 | (-2^63 ~ 2^63-1) |
sizeof关键词
作用:利用sizeof关键字可以统计数据类型所占内存大小
语法:sizeof(数据类型 / 变量)
整型结论:short < int <= long <=long long
实型(浮点型)
作用:浮点型变量表示小数类型的数据。
-
单精度float -
双精度double
两者区别在于表示的有效数字范围不同。
数据类型 | 占用空间 | 有效数字范围 |
---|
float | 4字节 | 7位有效数字 | double | 8字节 | 15~16位有效数字 |
注1:有效数字包括整数部分和小数部分。 注2:C++输出多位小数时默认会显示6位有效数字,需进行额外配置以完整显示全部有效数字。 注3:float类型表示小数时,在数字末尾显式地使用字母f表示单精度,否则编译器会默认将小数视为双精度浮点型(double),再进行类型转换(由double型转换为float型)。
int main()
{
float f1 = 3.1415926535f;
cout << "float 类型占用的内存大小:" << sizeof(float) << endl;
cout << "float 类型占用的内存大小:" << sizeof(f1) << endl;
double d1 = 3.1415926535;
cout << "double 类型占用的内存大小:" << sizeof(double) << endl;
cout << "double 类型占用的内存大小:" << sizeof(d1) << endl;
//科学计数法表示整数
float f2 = 3e2; // 3 * 10 ^ 2
cout << "f2 = " << f2 << endl;
//科学计数法表示小数
float f3 = 3e-2; // 3 * 0.1 ^ 2
cout << "f3 = " << f3 << endl;
system("pause");
return 0;
}
字符型
作用:字符型变量可表示单个字符。 语法:char ch = 'a';
注1:使用单引号表示字符,且单引号内有且仅有1个字符,不可以是字符串。 注2:使用 (int) ch 查询字符对应的ASCII编码。'a’对应97,'A’对应65。
int main()
{
//字符型变量创建方式
char ch = 'a';
cout << ch << endl;
//字符型变量所占内存大小
cout << "char字符型变量占用的内存大小:" << sizeof(char) << endl;
cout << "char字符型变量占用的内存大小:" << sizeof(ch) << endl;
//字符型变量常见错误
//char ch2 = "b"; //错误:表示字符时需使用单引号
//char ch2 = 'abcdef'; //错误:单引号内只能有一个字符
//字符型变量对应ASCII编码(a:97; A:65)
cout << (int)ch << endl;
system("pause");
return 0;
}
ASCII码表格:
ASCII值 | 控制字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 |
---|
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 | 1 | SOH | 33 | ! | 65 | A | 97 | a | 2 | STX | 34 | " | 66 | B | 98 | b | 3 | ETX | 35 | # | 67 | C | 99 | c | 4 | EOT | 36 | $ | 68 | D | 100 | d | 5 | ENQ | 37 | % | 69 | E | 101 | e | 6 | ACK | 38 | & | 70 | F | 102 | f | 7 | BEL | 39 | , | 71 | G | 103 | g | 8 | BS | 40 | ( | 72 | H | 104 | h | 9 | HT | 41 | ) | 73 | I | 105 | i | 10 | LF | 42 | * | 74 | J | 106 | j | 11 | VT | 43 | + | 75 | K | 107 | k | 12 | FF | 44 | , | 76 | L | 108 | l | 13 | CR | 45 | - | 77 | M | 109 | m | 14 | SO | 46 | . | 78 | N | 110 | n | 15 | SI | 47 | / | 79 | O | 111 | o | 16 | DLE | 48 | 0 | 80 | P | 112 | p | 17 | DCI | 49 | 1 | 81 | Q | 113 | q | 18 | DC2 | 50 | 2 | 82 | R | 114 | r | 19 | DC3 | 51 | 3 | 83 | S | 115 | s | 20 | DC4 | 52 | 4 | 84 | T | 116 | t | 21 | NAK | 53 | 5 | 85 | U | 117 | u | 22 | SYN | 54 | 6 | 86 | V | 118 | v | 23 | TB | 55 | 7 | 87 | W | 119 | w | 24 | CAN | 56 | 8 | 88 | X | 120 | x | 25 | EM | 57 | 9 | 89 | Y | 121 | y | 26 | SUB | 58 | : | 90 | Z | 122 | z | 27 | ESC | 59 | ; | 91 | [ | 123 | { | 28 | FS | 60 | < | 92 | / | 124 | | | 29 | GS | 61 | = | 93 | ] | 125 | } | 30 | RS | 62 | > | 94 | ^ | 126 | ` | 31 | US | 63 | ? | 95 | _ | 127 | DEL |
ASCII 码的大致组成部分:
- 非打印控制字符:ASCII 表的 数字0-31 分配给控制字符,用于控制如打印机等外围设备。
- 打印字符:ASCII 表的 数字32-126 分配给键盘上的字符。
转义字符
作用:表示一些特殊的无法直接显示的ASCII字符。 常用的转义字符有:\n \\ \t
注1:C语言中使用转义字符\n 换行,C++中使用endl 换行。 注2:表示水平制表符的转义符\t 占据8个字符宽度。
转义字符 | 含义 | ASCII码值(十进制) |
---|
\a | 警报 | 007 | \b | 退格(BS) ,将当前位置移到前一列 | 008 | \f | 换页(FF),将当前位置移到下页开头 | 012 | \n | 换行(LF) ,将当前位置移到下一行开头 | 010 | \r | 回车(CR) ,将当前位置移到本行开头 | 013 | \t | 水平制表(HT) (跳到下一个TAB位置) | 009 | \v | 垂直制表(VT) | 011 | \\ | 代表一个反斜线字符“\” | 092 | \’ | 代表一个单引号(撇号)字符 | 039 | \" | 代表一个双引号字符 | 034 | \? | 代表一个问号 | 063 | \0 | 数字0 | 000 | \ddd | 8进制转义字符,d范围0~7 | 3位8进制 | \xhh | 16进制转义字符,h范围0-9,a-f,A~F | 3位16进制 |
int main()
{
cout << "\\" << endl;
cout << "\tHello" << endl;
cout << "\n" << endl;
system("pause");
return 0;
}
字符串型
作用:表示一串字符
- C风格字符串:
char 变量名[] = "字符串值";
int main()
{
//C风格字符串
char str1[] = "hello world";
cout << str1 << endl;
system("pause");
return 0;
}
注1:使用C风格字符串时,需使用双引号将字符串值括起来。
注2:char 字符串名 []
- C++风格字符串:
string 变量名 = "字符串值";
#include <string>
int main()
{
//C++风格字符串
string cppStr = "hello cpp str";
cout << cppStr << endl;
system("pause");
return 0;
}
注1:使用C++风格字符串时,需包含头文件#include <string> 。
布尔类型 bool
作用:布尔数据类型表示真或假的值。 bool类型只有两个值
- true — 真(本质是1)
- false — 假(本质是0)
bool类型占1个字节大小
int main()
{
bool flag = true;
cout << flag << endl; // 1(真)
/* C++的bool类型中,true 或 任意非0值 均代表“真” */
flag = 6.66f;
cout << flag << endl; // 1(真)
flag = false;
cout << flag << endl; // 0(假)
/* C++的bool类型中,false 或 0值 代表“假” */
flag = 0;
cout << flag << endl; // 0(假)
cout << "bool类型占用的内存大小:" << sizeof(bool) << endl;
cout << "bool类型占用的内存大小:" << sizeof(flag) << endl;
system("pause");
return 0;
}
数据的输入
作用:从键盘获取数据
关键字:cin
语法: cin >> 变量
#include <iostream>
using namespace std;
#include <string>
int main()
{
//1、整型
int a = 0;
cout << "请给整型变量a赋值:" << endl;
cin >> a;
cout << "整型变量a = " << a << endl;
//2、浮点型
float f = 3.14f;
cout << "请给浮点型变量f赋值:" << endl;
cin >> f;
cout << "浮点型变量f = " << f << endl;
//3、字符型
char ch = 'a';
cout << "请给字符型变量ch赋值:" << endl;
cin >> ch;
cout << "字符型变量ch = " << ch << endl;
//4、字符串型
string str = "hello";
cout << "请给字符串型变量str赋值:" << endl;
cin >> str;
cout << "字符串型变量str = " << str << endl;
//5、布尔类型
bool flag = false;
cout << "请给布尔类型 flag 赋值:" << endl;
cin >> flag;//bool类型 只要非0的值都代表真
cout << "布尔类型 flag = " << flag << endl;
system("pause");
return 0;
}
运算符
算术运算符
作用:用于处理四则运算
注1:两整数相除,结果依然是整数,将小数部分去除
注2:两个数相除,除数是不可以为0的
注3:两小数可以相除,运算结果可以是小数
注4:两个数相除除数是不可以为0,所以也做不了取模运算
总结:只有整型变量可以进行取模运算
#include <iostream>
using namespace std;
int main()
{
//1、前置递增
int a = 10;
++a; //让变量+1
cout << "a = " << a << endl;
//2、后置递增
int b = 10;
b++; //让变量+1
cout << "b = " << b << endl;
//3、前置和后置的区别
//前置运算 先让变量+1,然后进行表达式运算
int a2 = 10;
int b2 = ++a2 * 10;
cout << "a2 = " << a2 << endl;
cout << "b2 = " << b2 << endl;
//后置运算 先进行表达式运算,后让变量+1
int a3 = 10;
int b3 = a3++ * 10;
cout << "a3 = " << a3 << endl;
cout << "b3 = " << b3 << endl;
system("pause");
return 0;
}
总结:前置递增先对变量进行++,再计算表达式,后置递增相反
赋值运算符
作用:用于将表达式的值赋给变量
比较运算符
优先级加括号,不然报错
逻辑运算符
程序流程结构
c++中支持最基本的三种流程结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不会发生跳转。
- 选择结构:根据条件是否满足,有选择的执行相应的功能。
- 循环结构:根据条件是否满足,循环多次执行某代码块。
选择结构
if语句
作用:执行满足条件的语句
- 单行格式if语句:
if(条件){ 条件满足执行的语句 }
Created with Rapha?l 2.3.0
开始
判断条件
执行语句
结束
yes
no
#include<iostream>
using namespace std;
int main()
{
//选择结构 单行if语句
//用户输入考试分数,如果分数大于600,则视为考上一本大学,在屏幕上输出
//1.用户输入分数
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
//2.打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3.判断分数是否大于600,如果大于则输出考上一本大学
//注意事项,if条件后面不要加分号
if (score > 600)
{
cout << "恭喜您考上一本大学" << endl;
}
system("pause");
return 0;
}
- 多行格式if语句:
if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };
Created with Rapha?l 2.3.0
开始
判断条件
执行语句1
结束
执行语句2
yes
no
#include<iostream>
using namespace std;
int main()
{
//选择结构 - 多行if语句
//用户输入考试分数,如果分数大于600,则视为考上一本大学,在屏幕上输出
//如果没有考上一本大学,则打印未考上一本大学
//1.输入考试分数
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
//2.提示用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3.判断 如果大于600,打印考上一本,否则打印未考上一本
if (score > 600) //大于600分执行下面大括号中的内容
{
cout << "恭喜您考上一本大学!" << endl;
}
else //不大于600分,执行else后大括号中的内容
{
cout << "您未考上一本大学" << endl;
}
system("pause");
return 0;
}
- 多条件的if语句:
if(条件1){ 条件1满足执行的语句 }else if(条件2){ 条件2满足执行的语句 }...else{ 都不满足执行的语句 }
#include<iostream>
using namespace std;
int main()
{
// 选择结构 多条件if语句
// 输入一个考试分数,如果大于600,则视为考上一本大学,在屏幕输出
// 大于500,视为考上二本大学,屏幕输出
// 大于400,视为考上三本大学,屏幕输出
// 小于等于400分,视为未考上本科,屏幕上输出
// 1.用户输入分数
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
// 2.打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
// 3.判断
// 如果大于600,考上一本
// 如果大于500,考上二本
// 如果大于400,考上三本
// 前三个都没有满足,未考上本科
if (score > 600)
{
cout << "您考上一本大学" << endl;
}
else if (score > 500) //第二个条件判断
{
cout << "您考上二本大学" << endl;
}
else if (score >= 400) //第三个条件判断
{
cout << "您考上三本大学" << endl;
}
else
{
cout << "未考上本科大学,请再接再厉" << endl;
}
system("pause");
return 0;
}
嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断
案例需求:
- 提示用户输入一个高考考试分数,根据分数做如下判断
- 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
- 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
#include<iostream>
using namespace std;
int main()
{
/*
-提示用户输入一个高考考试分数,根据分数做如下判断
- 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
- 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
*/
//1.提示输入高考分数
int score = 0;
cout << "请输高考考试分数:" << endl;
cin >> score;
//2.显示高考分数
cout << "您输入的分数为:" << score << endl;
//3.判断
// 如果大于600 一本
// 大于700 北大
// 大于650 清华
// 其余 人大
// 如果大于500 二本
// 如果大于400 三本
// 其余情况 未考上本科
if (score >= 600)
{
cout << "恭喜您考入一本大学" << endl;
if (score >= 700)
{
cout << "您考上北大" << endl;
}
else if (score >= 650)
{
cout << "您考上清华" << endl;
}
else
{
cout << "您考上人大" << endl;
}
}
else if (score >= 500)
{
cout << "您考上二本大学" << endl;
}
else if (score >= 400)
{
cout << "您考上三本大学" << endl;
}
else
{
cout << "您未考上本科大学" << endl;
}
system("pause");
return 0;
}
练习案例:三只小猪称体重
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
#include<iostream>
using namespace std;
int main()
{
//三只小猪称体重,判断哪只最重
//1、创建三只小猪的体重变量
int num1 = 0;
int num2 = 0;
int num3 = 0;
//2、让用户输入三只小猪的重量
cout << "请输入小猪A的体重" << endl;
cin >> num1;
cout << "请输入小猪B的体重" << endl;
cin >> num2;
cout << "请输入小猪C的体重" << endl;
cin >> num3;
cout << "A小猪的体重是:" << num1 << endl;
cout << "B小猪的体重是:" << num2 << endl;
cout << "C小猪的体重是:" << num3 << endl;
//判断哪只最重
//先判断A与B的重量
if (num1 > num2) //A比B重
{
if (num1 > num3) //A比C重
{
cout << "小猪A最重" << endl;
}
else //C比A重
{
cout << "小猪C最重" << endl;
}
}
else //B比A重
{
if (num2 > num3) //B比C重
{
cout << "小猪B最重" << endl;
}
else //C比B重
{
cout << "小猪C最重" << endl;
}
}
system("pause");
return 0;
}
三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1 ? 表达式2 : 表达式3
解释:
如果表达式1值为真,执行表达式2,并返回表达式2的结果 如果表达式1值为假,执行表达式3,并返回表达式3的结果
#include<iostream>
using namespace std;
int main()
{
//三目运算符
//创建三个变量 a b c
//将a和b作比较,将变量大的值赋值给变量c
int a = 10;
int b = 20;
int c = 0;
c = (a > b ? a : b);
cout << "c = " << c << endl;
//在c++中三目运算符返回的是变量,可以继续赋值
(a < b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}
switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1: 执行语句;break;
case 结果1: 执行语句;break;
···
default: 执行语句;break;
}
#include<iostream>
using namespace std;
int main()
{
//switch语句
//给电影进行打分
//10-9 经典
//8-7 非常好
//6-5 一般
//5以下 烂片
//1.提示用户给电影进行评分
cout << "请给电影进行打分" << endl;
//2.用户开始进行打分
int score = 0;
cin >> score;
cout << "您打的分数为:" << score <<endl;
//3.根据用户输入的分数来提示用户最后输入的结果
switch (score)
{
case 10:
cout << "您认为是经典电影" << endl;
break; //退出当前分支
case 9:
cout << "您认为是经典电影" << endl;
break;
case 8:
cout << "您认为电影非常好" << endl;
break;
case 7:
cout << "您认为电影非常好" << endl;
break;
case 6:
cout << "您认为电影一般" << endl;
break;
case 5:
cout << "您认为电影一般" << endl;
break;
default:
cout << "您认为这个电影是烂片" << endl;
break;
}
//if and switch 区别?
//switch缺点:判断的时候只能是整型或者是字符型,不可以是一个区间
//switch优点:结构清晰,执行效率高
system("pause");
return 0;
}
循环结构
while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){ 循环语句 }
解释:只要循环条件的结果为真,就执行循环语句
#include <iostream>
using namespace std;
int main()
{
//while循环
//在屏幕中打印0-9这10个数字
/*int num = 0;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;
num++;
cout << num << endl;*/
int num = 0;
//while()中填入循环条件
//注意事项:在写循环一定要避免死循环出现
while (num < 10)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
注意事项:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环
while循环练习案例:猜数字
案例描述:系统随机生成一个1到100以内的数字,玩家进行猜测,如果猜错,提示玩家数字过大或者数字过小,如果猜对恭喜玩家胜利,并且退出游戏。
#include <iostream>
using namespace std;
//time系统时间头文件包含
#include <ctime>
int main()
{
//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//1、系统生成随机数
int num = rand() % 100 + 1; //rand()%100 + 1 生成 0 + 1 - 99 + 1 随机数
//cout << num << endl;
//2、玩家进行猜测
int val = 0;
while (1)
{
cin >> val;
//3、判断玩家的猜测
//猜错 提示猜的结果 过大或者过小 重新返回第2步
if (val > num)
{
cout << "猜测过大" << endl;
}
else if (val < num)
{
cout << "猜测过小" << endl;
}
else
{
cout << "恭喜您猜对了" << endl;
//猜对 退出游戏
break; //break在循环中,可以利用该关键字来退出当前循环
}
}
system("pause");
return 0;
}
do…while循环语句
作用:满足判断条件,执行循环语句
语法:do{ 循环语句 }while(循环条件);
注意:与while的区别是do…while会先执行一次循环语句,再去判断循环条件
#include <iostream>
using namespace std;
int main()
{
//do...while语句
//在屏幕中输出0-9这10个数字
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
/*while (num < 10)
{
cout << num << endl;
num++;
}*/
//do...while与while的区别是do...while会先执行一次循环语句 ,再去判断循环条件
system("pause");
return 0;
}
练习案例:水仙花数
案例描述:水仙花数是一个3位数,他的每个位上的数字的3次幂之和等于它本身。
例如:
1
3
+
5
3
+
3
3
=
153
1^3+5^3+3^3=153
13+53+33=153
请利用do…while语句,求出所有3位数中的水仙花数
思路:
1、将所有的三位数进行输出(100-999)
2、在所有三位数中找到水仙花数
? 水仙花数 153
?
? 获取个位 153 % 10 = 3 对数字取模于10 可以获取到个位
? 获取十位 153 /10 = 15 15 % 10 = 5 先整除于10,得两位数,再取模于10,得到十位
? 获取百位 153 / 100 = 1 直接整除于100,获得百位
?
? 判断
个位
3
+
十位
3
+
百位
3
=
本身
{个位}^3+{十位}^3+{百位}^3=本身
个位3+十位3+百位3=本身
#include <iostream>
using namespace std;
int main()
{
//1、先打印所有三位数字
int num = 100;
do
{
//2、从所有三位数字中找到水仙花数
int a = 0;//个位
int b = 0;//十位
int c = 0;//百位
a = num % 10;//获取数字的个位
b = num / 10 % 10;//获取数字的十位
c = num / 100;//获取数字的百位
if (a*a*a + b*b*b + c*c*c == num)//如果是水仙花数,才打印
{
cout << num << endl;
}
num++;
} while (num < 1000);
system("pause");
return 0;
}
for循环语句
作用:满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体){ 循环语句; }
#include <iostream>
using namespace std;
int main()
{
//for循环
//从数字0 打印到 数字9
/*for (int i = 0; i < 10; i++ )
{
cout << i << endl;
}*/
int i = 0;
for (; ; )
{
if (i >= 10)
{
break;
}
cout << i << endl;
i++;
}
system("pause");
return 0;
}
注意:for循环中的表达式,要用分号进行分隔
总结:while,do…while,for都是开发中常用的循环语句,for循环结构比较清晰,比较常用
联系案例:敲桌子
案例描述:从1开始数到数字100,如果数字个位含有7,或者十位含有7,或者是7的倍数,我们打印敲桌子,其余数字直接打印输出。
1、先输出1到100 这些数字
2、从这100个数字中找到特殊数字,改为“敲桌子”
? 特殊数字
?
? 7的倍数 (7 14 21 28 …) % 7 = 0
? 个位有7 (7 17 27 37 …) % 10 = 7
? 十位有7 (70 71 72 73 …) / 10 =7
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 100; i++ )
{
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
{
cout << "敲桌子" << endl;
}
else
{
cout << i << endl;
}
}
system("pause");
return 0;
}
c++基础学习笔记先更新到这里,后续将继续更新
|