cin.get();
cin.get();
#inculude:引入
using:引入
#include"pch.h"
#include<iostream>
using namespace std;
int main()
{
cout<<"你好";
cout<<endl;
cout<<"你好我开始学程序了";
cout<<endl;
reutrn 0;
}
生疏
生疏
int a,b,c;
cout << "请输入第一个值:";
cin>>a;
cout << "请输入第二个值:";
cin>>b;
cout << "请输入第三个值:";
cin>>c;
if(a>b)
{
int temp = a;
a=b;
b=temp; // 酱油瓶和醋瓶交换
}
if(b>c)
{
int temp = b;
b=c;
c=temp;
}
cout<<a<<" "<<b<<" "<<c<<endl;
//结果:
请输入第一个值:40
请输入第二个值:20
请输入第三个值:3
20 3 40
int a,b,c;
cout << "请输入第一个值:";
cin>>a;
cout << "请输入第二个值:";
cin>>b;
cout << "请输入第三个值:";
cin>>c;
if(a>b)
{
int temp = a;
a=b;
b=temp; // 酱油瓶和醋瓶交换
}
if(b>c)
{
int temp = b;
b=c;
c=temp;
}
if(a>b)
{
int temp = a;
a=b;
b=temp; // 酱油瓶和醋瓶交换
}
cout<<a<<" "<<b<<" "<<c<<endl;
//结果:
请输入第一个值:50
请输入第二个值:20
请输入第三个值:10
10 20 50
// werdrew
// werrew
//werdsdfw
//wfdsdrew
// 10
// 0-9 //0-4 5-9
// 11 0-10 0-4
string str;
cin>>str;
bool isHui = true;
for(int i=0;i<str.size()/2;i++)
{
// i str.size()-1-i
if(str[i]==str[str.size()-1-i])
{
isHui=false;
}
}
if(isHui)
{
cout<<“是回文”<<endl;
}
else
{
cout<<"不是回文"<<endl;
}
分支语句和逻辑运算符 编程练习
1,用 switch 改写下面的代码片段:
if(ch =='A')
a_grade++;
else if (ch=='B')
b_grade++;
else if(ch=='C')
c_grade++;
else if(ch=='D')
d_grade++;
else
f_grade++;
2,求得 20!
3,求得 1!+2!+3!+...+20!
4,实现函数判断一个字符串是否是回文。若是回文,函数返回值为1;否则返回值为0.回文是顺读和倒读都一样的字符串!
5,输入三个整数,分别放在变量a,b,c中,然后把输入的数据重新按由小到大的顺序放到变量a,b,c中,最后输出啊a,b,c的值
char ch;
cin>>ch;
int a_grade=0,b_grade=0,c_grade=0,d_gread=0,f_grade=0;
switch(ch)
{
case 'A':
a_grade++;
break;
case 'B':
b_grade++;
break;
case 'C':
c_grade++;
break;
case 'D':
d_grade++;
break;
default:
f_grade++;
break;
}
cout<<a_grade<<b_grade<<c_grade<<d_grade<<f_grade<<endl;
// 阶乘
// 4! = 1*2*3*4 // 5!=120
long long result=1;
for(int i=1;i<=20;i++)
{
result=result*i;
}
cout<<result<<endl;
long long result = 0;
for(int i=1;i<=20;i++)
{
// i!
long long resultTemp=1;
for(int j=1;j<=i;j++)
{
resultTemp=resultTemp*j;
}
result+=resultTemp;
}
cout<<result;
int vip = 2;
switch(vip)
{
case 0:
cout<<"没有礼物"<<endl;
break;
case 1:
cout<<"赠送10个钻石"<<endl;
break;
case 2:
cout<<"赠送30个钻石"<<endl;
case 3:
cout<<"赠送50个钻石"<<endl;
break;
case 4:
cout<<"赠送100个钻石"<<endl;
break;
default :
break;
}
结果:
赠送30个钻石
赠送50个钻石
for(int i=1;i<10;i++)
{
if(i%3==0)
{
continue;
}
cout << i <<endl;
// 1
// 2
// 4
// 5
// 7
// 8
}
#include <iostream>
using namespace std;
enum HeroType
{
Tank = 1,
Magic = 4,
ADC = 7,
Assist
};
int main()
{
//switch(integer-expression) // 整数表达式
//{
//case label1:
//statement1;
//break;
//case label2:
//statement2;
//break;
//default:
//code
//break;
//}
/* HeroType type = Tank;
switch(type)
{
case Magic :
cout<<"使用魔法师技能"<<endl;
cout<<"创建魔法师模型"<<endl;
break;
case Tank:
cout<<"使用坦克技能"<<endl;
cout<<"创建坦克模型"<<endl;
break;
case ADC:
cout<<"使用射手技能"<<endl;
cout<<"创建射手模型"<<endl;
break;
case Assist:
cout<<"使用辅助技能"<<endl;
cout<<"创建辅助模型"<<endl;
break;
default:
cout<<"没有找到对应的英雄类型"<<endl;
break;
} */
int vip = 4;
switch(vip)
{
case 0:
cout<<"没有礼物"<<endl;
break;
case 1:
cout<<"赠送10个钻石"<<endl;
break;
case 2:
cout<<"赠送30个钻石"<<endl;
break;
case 3:
cout<<"赠送50个钻石"<<endl;
break;
case 4:
cout<<"赠送100个钻石"<<endl;
break;
default :
break;
}
}
结果:
使用坦克技能
创建坦克模型
赠送100个钻石
// 条件运算符 问号 冒号
// ? :
// 表达式1 ?表达式2:表达式3
//if(表达式1)
//{
//表达式2
//}
//else
//{
//表达式3
//}
//int i = true ? 100 : 90;
//cout<< i<<endl; // 100
//int vip =1;
// 使用string,需要引入#include <string>
//string res = vip==1 ? "有优惠" : " 正常价格";
int vip = 1;
vip == 1 ? cout<<"有优惠" : cout<<:"正常价格";
#include <iostream>
using namespace std;
int main()
{
// || 或
/*int vip = 1;
if(vip==1 || vip==2)
{
cout<<"获得优惠";
}*/
//bool res1 = true || false; // 1
//boo res2 = false || true; // 1
//bool res3 = false || false; // 0
//bool res4 = true || true; // 1
//cout<<res1<<" "<<res2<<" "<<res3<<" "<<res4<<endl;
//bool res1 = 4==4 || 4==9; // 1
//bool res2 = 9>0|| 3>4; // 1
//bool res3 = 2<8 || 3<9; // 1
//bool res4 = 5<3 || 9<7; // 0
//cout<<res1<<" "<<res2<<" "<<res3<<" "<<res4<<endl;
// && 与
//int age = 20;
//if(age>=18 && age<=30)
//{
//cout<<"你是青年"<<endl;
//}
//bool res1 = 4==4 && 3==3; // 1
//bool res2 = 8==8 && 6==4; // 0
//bool res3 = 5>4 && 3>9; // 0
//bool res4 = 4>8 && 5<10; // 0
//bool res5 = 3<9 && 2>9; // 0
//cout<<res1<<" "<<res2<<" "<<res3<<" "<<res4<<" "<<res5<<endl;
// !
//cout<<!true<<endl; // 0
//cout<<!(10>9)<<endl; // 0
// && and || or ! not
return 0;
}
int hp=0;
// 单独if
if(hp<=0)
{
//cout<<:"true"<<endl;
cout<<"游戏结束"<<endl;
}
if(hp<=0)
cout<<"游戏结束:<<endl;
if(hp<=0)
{
cout<<"游戏结束"<<endl;
}
else
{
cout<<"游戏继续"<<endl;
}
// if 嵌套
int age = 17;
if(age<18)
{
cout<<"你可以玩3个小时"<<endl;
}
else
{
//cout<<"你可以玩10个小时"<<endl;
if(age<50)
{
cout<<"你可以玩10个小时"<<endl;
}
else
{
cout<<"你可以玩2个小时"<<endl;
}
}
//if else if
if(age<18)
{
cout<<"你可以玩3个小时"<<endl;
}
else if(age<50)
{
cout<<"你可以玩10个小时"<<endl;
}
else if(age<80)
{
cout<<"你可以玩2个小时"<<endl;
}
else
{
cout<<"你不能玩这个游戏"<<endl;
}
7,编写一个程序,让用户可以持续输入数字,每次输入数字,报告当前所有输入的和。当用户输入0的时候,程序结束。
siki:
float total = 0;
while (true)
{
cout << "请输入一个数字:";
float number;
cin >> number;
if (number == 0)
{
break;
}
total += number;
cout << "当前所有输入的和为:" << total << endl;
}
自写:
bool execute = true;
float totalNum = 0;
while (execute)
{
float temp;
cout << "请输入一个数字:";
cin >> temp;
if (temp == 0)
{
execute = false;
}
totalNum += temp;
cout << "当前和为:" << totalNum << endl;
}
3,下面的代码会打印什么内容
int j = 5;
while(++j<9)
cout << j++ << endl;
结果:
6
8
int j = 5;
while (++j < 9) // j=j+1 ; j<9
cout << j++ << endl; // cout<<j<<endl; j=j+1;
// 6
// 8
4,下面的代码会打印什么内容
int k = 8;
do
cout << "k = " << k << endl;
while(k++ < 5);
结果:
k = 8
5,编写一个打印 1 2 4 8 16 32 64 的for循环
siki:
for(int i = 1; i <= 64; i*=2)
{
cout<<i<<endl;
}
//j=1; res=1;
//j=1*2; res=2;
//j=2*2; res=4
//j=4*2; res=8;
//j=8*2; res=16;
//j=16*2; res=32;
//j=32*2; res=64
自写:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
for (int a = 0; a < 7; a++)
{
cout << pow(2, a) << " ";
}
//a=0,res=1
//a=1,res=2
//a=2,res=4
//a=3,res=8
//a=4,res=16
//a=5,res=32
//a=6,res=64
return 0;
}
6,编写一个程序,让用户输入两个整数,输出这两个整数之间(包括这两个整数)所有整数的和。
比如 2 5 里面整数有 2 4 = 6
cout << "请输入第一个数字:";
int num1;
cin >> num1;
cout << "请输入第二个数字:";
int num2;
cin >> num2;
int total = 0;
for (int i = num1; i <= num2; i++)
{
total += i;
}
cout << total << endl; // 14
// 2 - 5 2 3 4 5
练习题
1,下面的代码会打印什么内容
int i;
for(int i = 0; i < 5; i++)
cout << i;
cout << endl;
结果:01234
2,下面的代码会打印什么内容
int j;
for(j = 0; j < 11; j+=3)
cout << j;
cout << endl << j << endl;
结果:
0369
12
3,下面的代码会打印什么内容
int j = 5;
while(++j<9)
cout << j++ << endl;
结果:
4,下面的代码会打印什么内容
int k = 8;
do
cout << "k = " << k << endl;
while(k++ < 5);
5,编写一个打印 1 2 4 8 16 32 64 的for循环
6,编写一个程序,让用户输入两个整数,输出这两个整数之间(包括这两个整数)所有整数的和。
比如 2 5 里面整数有 2 4 = 6
7,编写一个程序,让用户可以持续输入数字,每次输入数字,报告当前所有输入的和。当用户输入0的时候,程序结束。
#include <iostream>
using namespace std;
int main()
{
//for (int i = 0; i < 5; i++)
// cout << i;
//cout << endl;// 结果:01234
int i = 9;
//++i;
//--i;
//cout << i << endl;
//int result = (i++) + 1; // 结果:10 10
//int result = ++i + 1; // 结果:11 10
//cout << result << " " << i << endl;
//{
// cout << i++ << endl; // 9
// cout << i << endl; // 10
//}
//{
// cout << ++i << endl; // 10
// cout << i << endl; // 10
//}
//{
// cout << i-- << endl; // 9
// cout << i << endl; // 8
//}
{
cout << --i << endl; // 8
cout << i << endl; // 8
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int scores[] = { 233,123,23,123,345 };
int scores2[4][5] = {
{123,12,321,2,2},
{123,2,13,12,31},
{123,12,3,343,4},
{234,345,4,543,3}
};
//cout << scores2[1][1] << endl; // 2
//for (int i = 0; i < 5; i++) // 5
//{
// for (int j = 0; j < 6; j++) // 6 5*6 30次
// {
// cout << "i:" << i << " j:" << j << endl;
// }
//}
//for (int i = 0; i < 4; i++)
//{
// for (int j = 0; j < 5; j++)
// {
// cout << scores2[i][j] << " ";
// }
// cout << endl;
//}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 4; j++)
{
cout << scores2[j][i] << " ";
}
cout << endl;
}
// 123 123 123 234
// 12 2 12 345
// 321 13 3 4
// 2 12 343 543
// 2 31 4 3
return 0;
}
C++11的新遍历方式:
for(int 临时变量 : 数组)
{
}
#include <iostream>
using namespace std;
int main()
{
//do {
// // 循环体
//} while (判断);
int i = 100;
//do
//{
// cout << "创建敌人" << endl;
//} while (i>100);
// do while 循环体次数 >=1 的
//while (i>100)
//{
// cout << "创建敌人" << endl;
//}
// while 循环体次数 >=0 的
int scores[] = { 234,2,42,3,2,42,42,32 };
//for (int i = 0; i < 8; i++)
//{
// cout << scores[i] << endl;
//}
// C++11的标准
//for (int temp : scores)
//{
// //cout << temp << endl;
// temp = 10; // 笔记:不起作用
//}
//for (int temp : scores)
//{
// cout << temp << endl;
//}
for (int& temp : scores) // 注意:int& temp
{
//cout << temp << endl;
temp = 10;// temp = temp * 2; // 起到作用了,因为 int & temp,引用类型
}
for (int temp : scores)
{
cout << temp << endl;
}
return 0;
}
#define
typedef
#include <iostream>
#include <string>
using namespace std;
// 宏
#define END return 0;
#define START int main()
#define FString string
#define R return
// 笔记:只能给类型起别名
typedef string UString; //笔记: 必须加分号;
// typedef return R; // 报错
typedef int FInt;
START
{
FString name = "siki";
cout << name << endl;
UString nickName = "sikiedu";
cout << nickName << endl;
R 0;
}