简单入门1.4

    技术2026-03-19  10

    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; }
    Processed: 0.016, SQL: 9