欢迎光临散文网 会员登陆 & 注册

第十讲笔记

2023-04-04 20:24 作者:X_ryan  | 我要投稿

第17讲

1.结构体

关键字:

struct

用法:

struct 结构体{

执行内容;

}定义数组;

经典代码:

#include<iostream>

using namespace std;

struct student{

string s;

int age;

double height;

}s1[101];

int main(){

//student s1;

int n;

cin>>n;

for(int i=0;i<n;i++){

cin>>s1[i].s>>s1[i].age>>s1[i].height;

}

cout<<"--------------------------------------------------"<<endl;

for(int i=0;i<n;i++){

cout<<s1[i].s<<" "<<s1[i].age<<" "<<s1[i].height<<endl;

}

return 0;

}

声明:

1. 直接声明

2. 在定义结构体的声明

赋值

直接赋值

2.sort语句

头文件:

#include<algorithm>

格式:

//sort(begin,end,cmp);

//begin=数组中要排序的起始位置

//end=数组要排序的结束位置

//cmp=自定义的排序顺序规则,不写默认升序

包含起始,不包含结束!

 

经典代码:

升序:

方法1:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n;

int a[1001]={};

cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

}

sort(a+1,a+1+n);

for(int i=1;i<=n;i++){

cout<<a[i]<<" ";

}

return 0;

}

方法2:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n;

int a[1001]={};

cin>>n;

for(int i=0;i<=n;i++){

cin>>a[i];

}

sort(a+0,a+0+n);

for(int i=0;i<=n;i++){

cout<<a[i]<<" ";

}

return 0;

}

  

降序:

方法1:

#include<bits/stdc++.h>

using namespace std;

bool cmp(int x,int y){

return x>y;

}

int main(){

int a[1001]={};

int n;

cin>>n;

for(int i=0;i<n;i++){

cin>>a[i];

}

sort(a,a+n,cmp);

for(int i=0;i<n;i++){

cout<<a[i]<<" ";

}

return 0;

}

方法2:

#include<bits/stdc++.h>

using namespace std;

bool cmp(int x,int y){

return x>y;

}

int main(){

int a[1001]={};

int n;

cin>>n;

for(int i=1;i<n;i++){

cin>>a[i];

}

sort(a+1,a+1+n,cmp);

for(int i=1;i<n;i++){

cout<<a[i]<<" ";

}

return 0;

}


第18讲

1.桶排序

好处

可排序,可去重

坏处

一定要遍历

2.冒泡排序

经典代码:

#include<bits/stdc++.h>

using namespace std;

int main(){

int a[1001]={};

int n;

cin>>n;

for(int i=1;i<=n-1;i++){

cin>>a[i];

}

//冒泡排序

for(int i=1;i<=n-1;i++){

for(int j=1;j<=n-1;j++){

if(a[j]<a[j+1]){

swap(a[j],a[j+1]);

}

}

}

for(int i=1;i<=n;i++){

cout<<a[i]<<" ";

}

return 0;

}

冒泡核心代码:

for(int i=1;i<=n-1;i++){

bool flag=true;

for(int j=1;j<=n-i;j++){

if(a[j]<a[j+1]){

swap(a[j],a[j+1]);

}

 


第十讲笔记的评论 (共 条)

分享到微博请遵守国家法律