您的位置:首页 > 其它

简单入门1.4

2020-07-04 22:53 36 查看

1.字符串的拷贝

#include<cstring>
#define LEN 100
int main(){
char a[LEN], b[LEN];
int n, m;
cin>>n;
getchar();  //回收换行符
fgets(a, n + 1, stdin); //n+1就是读取输入的n个字符,后接一个'\0'
cin>>m;
int i, j = 0;
for (i = m - 1; i <= n; i++)  //i<=n  要把结束符给拷贝进去
b[j++] = a[i];
cout<<b<<endl;
return 0;
}

2.字符串的排序

#include<cstring>
int main()
{
char a[3][128], tmp[128];
int i, j;
for(i=0; i<3; i++)
cin>>a[i];
for(i=0; i<3; i++)
{
for(j=i+1; j<3; j++)
{
if(strcmp(a[i], a[j]) > 0)
{
memset(tmp, 0, sizeof(tmp));  //初始化数组
strcpy(tmp, a[i]);  //赋值
strcpy(a[i], a[j]);
strcpy(a[j], tmp);
}
}
}
for(i=0; i<3; i++)
cout<<a[i]<<endl;
return 0;
}

3.学生排序

#include<cstring>
#include<algorithm>
typedef struct Stu{
char name[101];
int age;
int score;
}Stu;
Stu s[1000];
bool cmp(Stu a,Stu b){
if(a.score==b.score){
if(strcmp(a.name,b.name)==0)
return a.age<b.age;
else return strcmp(a.name,b.name)<0;
}
else return a.score<b.score;
}
int main(){
int n;
while(cin>>n){
for(int i=0;i<n;i++)
cin>>s[i].name>>s[i].age >>s[i].score ;
sort(s,s+n,cmp);
for(int i=0;i<n;i++)
cout<<s[i].name<<" "<<s[i].age <<" "<<s[i].score <<endl;
}
}

4.排列组合

#include<iostream>
using namespace std;
int book[5];
int v[4], k[5];
void dfs(int cur,int cont)
{
int i;
if (cur == 4)
{
for (i = 1; i <= 3; i++)
{
cout << v[i]<<" ";
}
cout << endl;
return;
}
for (i = 1; i <= 4; i++)
{
if (book[i] == 0 && i!=cont)
{
book[i] = 1;
v[cur] = k[i];
dfs(cur + 1,cont);
book[i] = 0;
}
}
return;
}
int main()
{
int i;
for (i = 1; i <= 4; i++)
cin >> k[i];
dfs(1, 4);
dfs(1, 3);
dfs(1, 2);
dfs(1, 1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: