1级
第一课——cout
/*
C01.L01.程序的基本结构、cout语句
杨彦彬
2024.9.23日作业
(2024.9.23做)
*/
//调用头文件
#include<bits/stdc++.h>
//使用标准名字空间
using namespace std;
//代码主体
int main(){
//输出数字
cout<<25;cout<<endl;
//输出算式
cout<<45+23;cout<<endl;
//输出字符或字符串
cout<<'S';cout<<endl;
cout<<"zifuchuan";cout<<endl;
//输出换行
cout<<endl;
//输出连续输出项
cout<<32<<"1a2b3c"<<' '<<12+21;
//分号标示了一个语句的结束,C++的每一个语句都必须以分号结尾。
//返回值
return 0;
}
第二课——变量与cin
/*
C01.L02.整型变量、赋值语句、cin 语句
杨彦彬
2024.9.24日作业
(1014.9.23做)
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
//定义变量
int n; //声明一个变量,名字叫做n,n是一个整型变量
//直接赋值
n=10;
/* 可以在声明得时候赋值:int n=10*/
//间接赋值
int m;
m=n;
//自我赋值
n=n*1;
n=n-1;
n=n*10;
//++、--
int x=10,y=10;
x++;//x++ = x=x+1;
y--;//y++ = y=y+1;
//cin输入
int a,b;
cin>>a>>b;
cout<<n<<endl;
cout<<m<<endl;
cout<<x<<endl;
cout<<y<<endl;
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
第三课——计算
/*
C01.L03.整除及求余、数字的提取、顺序结构程序
杨彦彬
2024.9.25日作业
(2024.9.23做)
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
//整除
cout<<10/2<<" ";
cout<<10/3<<endl;
//取模(a除以b的余数)
cout<<10%2<<" ";
cout<<10%3<<endl<<"———"<<endl;
//提取数字
//例:提取1243的百位数和91754的千位数
cout<<1243/100%10<<" ";
cout<<91754/1000%10<<endl;
/*
按照解决问题的顺序写出相应的语句,
执行时按自上而下的顺序依次执行,
这就是顺序结构,
是最常用的一种程序结构。
*/
return 0;
}
第四课——if语句和bool
/*
C01.L04.if语句、布尔类型、关系表达式
杨彦彬
2024.9.26日作业
(2024.9.23做)
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
//定义布尔类型变量
bool f;//布尔类型变量的值有且仅有两种可能:true/false
/*
关系表达式:
10>6 值为真
7%3==1 值为假
逻辑表达式:
1==3&&2>1 值为假
1==3||2>1 值为真
1!=2 值为真
*/
//if语句
if(1==3||2>1)
{
cout<<"1==3||2>1值为真"<<endl;
}//单分支
if(1==3&&2>1)
{
cout<<"1==3&&2>1值为真"<<endl;
}
else
{
cout<<"1==3&&2>1值为假"<<endl;
}//双分支
return 0;
}
第五课——if语句嵌套
/*
C01.L05.if语句及其嵌套
杨彦彬
2024.9.27日作业
(2024.9.23做)
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
/*
if 语句的嵌套是指在 if ... else ... 分支中还存在 if ... else ... 语句,
一般用来解决三种及以上的分支情况。
*/
int a;
cin>>a;
if(a>=60)
{
if(a>=70)
{
if(a>=80)
{
if(a>=90)
{
cout<<"A+";
}
else
{
cout<<"A";
}
}
else
{
cout<<"A-";
}
}
else
{
cout<<"B+";
}
}
else
{
cout<<"B";
}
return 0;
}
第六课——复合语句
/*
C01.L06.复合语句、数值交换、三个数的最值与排序
杨彦彬
2024.9.__日作业
(2024.9.23做)
*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a=0,b=0,c=0;
cin>>n;
if(n<0)
a=a+2;
b=b+2;
c=c+2;
cout<<a<<" "<<b<<" "<<c<<endl;
a=0,b=0,c=0;
if(n<0)
{
a=a+2;
b=b+2;
c=c+2;
}
cout<<a<<" "<<b<<" "<<c<<endl;
/*
以上两个部分的结果是不一样的,
因为一个加了花括号({}),
代表当条件表达式通过时,
花括号内的程序同时执行。
当 if 和 else 后面有多个要操作的语句时,
要用花括号 {} 括起来,
将几个语句括起来的语句组合称为复合语句。
*/
//数值交换
a=4,b=6;
int t=a;a=b,b=t;
cout<<a<<" "<<b<<endl;
//错误示范:a=b,b=a;
//输出三个数中的最大值
a=6,b=4,c=7;
cout<<"a,b,c中的最大值是:";
if(a>b)
{
if(a>c) cout<<a<<" ";
else cout<<c<<" ";
}
else
{
if(b>c) cout<<b<<" ";
else cout<<c<<" ";
}
return 0;
}
第七课——for语句初识
/*
C01.L07.for语句初识
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
//for语句
for(int i=1;i<=10;i++)
{
cout<<"1";
}
cout<<endl;
//递减型
for(int i=10;i>=1;i--)
{
cout<<"2";
}
cout<<endl;
//初始值与终值非int类型的for语句
for(double i=0.5;i<=5.0;i+=0.5)
{
cout<<"3";
}
return 0;
}
第八课——累加器和累乘器
/*
C01.L08.累加器、累乘器
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int s=0;//定义累加器s
int c=1;//定义累乘器c
int main(){
//通过累加器求a+(a+1)+···+(b-1)+b的和
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
s+=i;//累加
}
cout<<s<<endl;
//通过累乘器求x*(x+1)*···*(y-1)*y;
int x,y;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
c*=i;
}
cout<<c<<endl;
return 0;
}
第九课——求最值
/*
C01.L09.求最值
通过循环求最值
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int maxn=0;
int minn=10001;
int main(){
//求10个1~10000之间的数中的最大值
for(int i=1;i<=10;i++)
{
int t;
cin>>t;
if(t>maxn) maxn=t;
}
cout<<"这10个数中的最大值是:"<<maxn<<endl;
//求10个1~10000之间的数中的最小值
for(int i=1;i<=10;i++)
{
int t;
cin>>t;
if(t<minn) minn=t;
}
cout<<"这10个数中的最小值是:"<<minn<<endl;
return 0;
}
第十课——循环嵌套
/*
C01.L10.双重循环、多重循环程序设计
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
//双重循环
for(int i=1;i<=5;i++)
{
for(int j=1;j<=10;j++)
{
cout<<"# ";
}
cout<<endl<<endl;
}
//三重循环
for(int i=1;i<=4;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=2;k++)
{
cout<<i<<" "<<j<<" "<<k<<"\n";
}
}
}
return 0;
}
第十一课——while语句
/*
C01.L11.while循环
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
//while循环
int a;
cin>>a;
while(a!=0)//当a不等于0时继续执行
{
cout<<a%10<<" ";
a=a/2;
}
cout<<endl;
//do-while语句
do
{
cout<<a;
}while(a!=0);
//之所以会输出一个0,是因为do_while语句实现执行后判断。
//所以会先执行一遍输出a,再判断a!=0是否为真。
/*
while和for的区别:
1.while的循环次数是不定的;for的循环次数是一定的。
2.while可以搭配do来写;for不可以。
*/
return 0;
}
第十二课——数据分离
/*
C01.L12.数据分离
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
//输出n的每一位数字
int n;
cin>>n;
while(n!=0)
{
cout<<n%10<<" ";
n=n/10;
}//输出是倒序的
cout<<endl;
//反转数字
cin>>n;
int k=0;
while(n!=0)
{
k=k*10+n%10;
n=n/10;
}
cout<<k;
return 0;
}
2级
第一课——一维数组
/*
C02.L01.一维数组初步认识
杨彦彬
2024.9.25做
*/
#include<bits/stdc++.h>
using namespace std;
//定义一维数组
int a[10];//定义有10个元素的一维数组a
int main(){
//输入
cin>>a[0];
for(int i=1;i<=5;i++)
{
cin>>a[i];
}
cout<<endl;
//输出
cout<<a[0]<<" ";
for(int i=1;i<=5;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
//赋值
a[0]=10;
for(int i=1;i<=5;i++)
{
a[i]=6-i;
}
cout<<a[0]<<" ";
for(int i=1;i<=5;i++)cout<<a[i]<<" ";
cout<<endl;
/*
注意:数组下标从0开始,
所以一个由10个元素组成的数组,
对应的下标是0~9。
*/
return 0;
}
第二课——一维数组的最值
/*
C02.L02.一维数组最值问题
杨彦彬
2024.9.27做
*/
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main(){
for(int i=1;i<=5;i++)
{
cin>>a[i];
}
//输出最大值
int maxx=-1;
for(int i=1;i<=5;i++)
{
if(a[i]>maxx) maxx=a[i];
}
cout<<"a数组的最大值是:"<<maxx<<endl;
//输出最大值的位置
int maxn=-1,pos=0;
for(int i=1;i<=5;i++)
{
if(a[i]>maxn) maxn=a[i],pos=i;
}
cout<<"a数组的最大值在第 "<<pos<<" 个"<<endl;
return 0;
}
第三课——数组元素的插入、删除和移动
/*
C02.L03.数组元素的移动、插入、删除
杨彦彬
2024.9.27做
*/
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main(){
int n=5;
for(int i=1;i<=n;i++) cin>>a[i];
//将a[k]移到末尾
int k;
cin>>k;
int t=a[k];
for(int i=k;i<n;i++)
{
a[i]=a[i+1];
}
a[n]=t;
for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
//在a[k]到a[k-1]之间插入x;
int x;
cin>>k>>x;
n++;
for(int i=n;i>=k+1;i--)
{
a[i]=a[i-1];
}
a[k]=x;
for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
//删除a[k];
cin>>k;
for(int i=k;i<n;i++)
{
a[i]=a[i+1];
}
n--;
for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
return 0;
}
第四课——选择排序
/*
C02.L04.选择排序
杨彦彬
2024.9.27做
*/
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main(){
int n=5;
for(int i=1;i<=n;i++) cin>>a[i];
//选择排序(从小到大)
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[i]>a[j]) swap(a[i],a[j]);
}
}
for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
return 0;
}