aa
2025-02-11 12:06:12
发布于:浙江
//c语法篇 - D01 (张斌是个大变态!!!!!)
//Day1 - 顺序结构
1.基本框架
(1)头文件 :#include<bits/stdc.h>
(2)命名空间
(3) 主函数:有且只有一个
2.数据类型
2.1整形(integer)
(1)int:整形 范围:-21亿~21亿 -231~231-1
(2)long long :长长整型 范围:-1018~1018左右
2.2浮点型
(1)float:单精度浮点型 (基本不用)
(2)double:双精度浮点型(小数用这个)
2.3字符型
char:定义单个字符
字符:字母、数字、符号等用、单引号、包起来的 单个符号
(2)ASCII码
'A'-65 'a'-97 '0'-48 ' '-32
2.4 字符串类型 string s;
(1)头文件#include <string>
(2)计算长度 s.size(); s.length();
(3)输入字符串
a)cin>>s;(不带空格)
b)getline(cin,s);(带空格)
(4)比较大:字典序(从小到大)
比较方式:按位一个一个比较过去,直到第一各不相同,谁就谁大
3.输入输出
3.1输入
(1)单个变量或者字符串:cin>>变量名;
(2)数组:循环输入
3.2 输出
(1) cout<<endl;
(2)printf:格式化输出
a)小数:printf("%.2f",变量名); 保留两位小数
b)右对齐-空格:printf("%5f",123);
c)右对齐-补0:printf("%05f",123);
4.条件分支语句
(1)但分支语句:如果条件成立,执行语句1;否则语句2
if(条件){
语句;
}
(2)双分支语句:如果条件成立,执行语句1;否则语句2
if(条件){
语句1;
} else{
语句2;
}
(3)三目运算符:条件?语句1;语句2
如果条件成立,执行语句1;否则语句2
例如:
int day =10
day == 10? cout<<" ":cout<<" ";
(4)多分支语句
if(){
} else if(){
}else if(){
}else if(){
}else{
}
5.循环
(1)for循环
for(初始值;条件;变化量){
循环体
}
初始值 ->条件->循环体->变化量->...
for(int i=1;i<=10;i++){
cout<<" "<<endl;
}
(2)while循环:当条件成立的时候,执行语句
while(条件){
循环语句
}
int day = 10
while(day ==10){
cout<<" "<<endl;
}
(3)do-while:相比while循环,如果条件不成立,至少执行一次
do{
cout<<" "<<endl;
}while(0);
6.数组
(1)定义:变量类型 数组名[数组空间];//数组空间=n的最大值+5~10
(2)遍历范围:0~n-1 或者1-n =>注意循环范围
7.数位分离
(1) 分离各位
int n=12345;
while(n){
cout<<n%10;
n/=10;
}
(2)求和
int n = 12345,s=0;
while(n){
s +=n%10;
n/=10
}
8.函数
(1)函数的声明 - 省略
(2)函数定义
函数类型函数名(变量类型 变量名1,变量类型 变量名2,..){
函数内容
}
函数类型 - 返回(int/double/string..) 无返回(void)
(3)函数调用
函数名(变量名1,变量名2,...) =>注意:类型要一一对应
9.sort
(1) 头文件
(2)模板 sort(数组名+开始下标,数组名+开始下标+1);
(3)升序:从小到大 sort(a,a+n);
(4)降序:从大到小
bool cmp(int x,int y){
return x>y;
}
sort(a,a+n,cmp);
10.结构体
struct 结构体类型名{
变量类型 变量名1;
变量类型 变量名2;
变量类型 变量名3;
} 结构体变量名/数组;
例如:
struct student{
string name;
int id;
int cls;
int age;
}a[105],b,c;
//等同于student a[105],b,c =>类似于 int a[105],b,c
11.结构体排序
//(1)根据成绩从大到小
//(2)如果成绩相同,语文成绩从大到小
//(3)如果语文成绩相同
struct student{
int yw,sx,yy,sum,id;
}a[305];
bool cmp(student x,student y){
if(x.sum !=y.sum )return x.sum>y.sum ;
else if(x.yw !=y.yw )return x.yw>y.yw ;
return x.id>y.id ;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].yw>>a[i].sw>a[i].yy;
a[i].id = i;
a[i].sum = a[i].yw+a[i].sw+ a[i].yy;
}
sort(a+1,a+n+1,cmp);
}
这里空空如也
有帮助,赞一个