//C语法篇
1.基本框架
(1) 头文件:#include<bits/stdc.h>//万能头,可以只写这个
(2) 命名空间
(3) 主函数:有且只有一个
2.数据类型
(1)整型
(1.1)int:整型 范围:-21亿~21亿 -231~231-1
(1.2)long long:长长整型:-1018~1018 左右
(2)浮点型
(1.1)fioat:单精度浮点型 (基本不用)
(1.2)double:双精度浮点型(小数就用这个)
(3)字符型
(1.1)char:定义单个字符(字符:字母、数字、符号等用 单引号 包起来的 单个 符号)
(1.2)ASCII码:
(1.2.1)'A'-65
(1.2.2)'a'-97
(1.2.3)'0'-48
(1.2.4)' '-32
(4)字符串类型 string s;
(1.1)头文件 #include<string>
(1.2)计算长度 s.size(); s.length();
(1.3)输入:
(1.3.1)cin>>s;(不带空格)
(1.3.2)getline(cin,s);(带空格)
(1.4)比较大小:字典序(从小到大)
(1.4.1)(比较方式:按位一个个比较,直到第一个不相同,谁大就谁大)
(1.4.2)(例子:"123"<"2" "121">"12")
3.输入输出
(1)输入
(1.1)单个变量或字符串:cin>>变量名;
(1.2)数组:循环输入
(2)输出
(2.1)cout<<endl;
(2.2)printf:格式化输出
(1.2.1)小数:printf("%.2f",变量名);
(1.2.2)右对齐-空格:printf("%5d",123);
(1.2.3)右对齐-补0:printf("%05d",123);
4.条件分支语句
(1)单分支语句
(1.1)if(条件){语句;}
(2)双分支语句
(2.1)if(条件){语句1;}
else{语句2;}
(3)三目运算符
(3.1)(条件)?(语句1):(语句2);
(3.2)int day=10;
(day==10)?(cout<<"老师真帅!!!"):(cout<<"张斌真帅!!!");
(4)多分支语句
(4.1)if(){
5.循环
(1)for循环
(1.1)for(初始值;条件;变化量)循环体;}
(1.2)初始值->条件->循环体->变化量->...
(1.3)for(int i=1;i<=10;i++){cout<<"老师真帅!!!"<<endl;}
(2)while循环
(2.1)while(条件){循环语句;}
(2.2)int day=10;
while(day==10){cout<<"老师真帅!!!"<<endl;}
(3)do-while
(3.1)do{cout<<"老师真帅!!!"<<endl;}while(0);
6.数组
(1)定义:变量类型 数组名[数组空间];
(2)遍历范围:0n-1/1n
7.数位分离
(1)分离各位
(1.1)int n=12345;
while(n){
cout<<n%10;
n/=10;
}
(2)求和
(2.1)int n;
while(n){
s+=n%10;
n/=10;
}
8.函数
(1)函数声明 - 省略
(2)函数定义
(2.1)函数类型 函数名(变量类型 变量名1,变量类型 变量名2...){
函数内容;
}
(2.2)函数类型 - 返回(int/double/string...) 无返回(void)
(3)函数调用
(3.1)函数名(变量名1,变量名2...) =>注意:类型需要一一对应
9.sort
(1)头文件algorithm
(2)模板:sort(数组名)
(3)升序:从小到大 sort(a+1,a+n+1);
(4)降序:从大到小
bool cmp(int x,int y,){
return x>y;
}
sort(a+1,a+n+1,cmp);
10.结构体
(1)struct 结构体类型名{
变量类型 变量名1;
变量类型 变量名2;
变量类型 变量名3;
}结构体变量名/数组;
(1)struct 结构体类型名{
string name;
int id,age,cls;
}a[105],b,c;
11.结构体排序
/*
题目:学生有语文、数学、英文成绩,总分,输入顺序是学号
(1)总分从大到小
(2)语文从大到小
(3)学号从小到大
*/
struct student{
int a,b,c,s,id;
}a[305];
bool cmp(student x,student y){
if(x.s!=y.s) return x.s>y.s;
else if(x.a>y.a) return x.a>y.a;
else return x.id<y.id;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].a>>a[i].b>>a[i].c;
a[i].s=a[i].a+a[i].b+a[i].c;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
}