学校考核,速救,需要代码,c语言!

考试速救!
最好用比较基础的知识,数组,简单的函数,指针之类的!

速度快来!

img

(1)

#include <stdio.h>
#include <string.h>

void swap(char *a, char *b)
{
    char t = *a;
    *a = *b;
    *b = t;
}

void sort(char *s)
{
    int n = strlen(s);
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
            if (s[j] > s[j + 1])
                swap(&s[j], &s[j + 1]);
    }
}

int main(void)
{
    char buffer[180];
    scanf("%s", buffer);
    sort(buffer);
    printf("%s\n", buffer);
    return 0;
}

(2)

#include <stdio.h>
#include <string.h>

#define N 20
#define M 30

void sort(char *s[], int n)
{
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
            if (strlen(s[j]) > strlen(s[j + 1]))
            {
                char *t = s[j];
                s[j] = s[j + 1];
                s[j + 1] = t;
            }
    }
}

int main()
{
    char buffer[N][M];
    char *s[N];
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%s", buffer[i]);
        s[i] = buffer[i];
    }
    sort(s, n);
    for (int i = 0; i < n; i++)
        printf("%s ", s[i]);
    printf("\n");
    return 0;
}

(3)

#include <stdio.h>

void print(const char *s)
{
    if (!*s)
        return;
    else if (*s >= 'a' && *s <= 'z')
        putchar(*s);
    print(++s);
}

int main()
{
    char buffer[50];
    scanf("%s", buffer);
    print(buffer);
    return 0;
}

T1

#include "stdio.h"
#include "string.h"
int main()
{
    int appear[128] = {0};
    char s[181];
    gets(s);        // 字符串包含空格也可以读取
    int len = strlen(s);
    for(int z=0;z<len;z++){
        int key = int(s[z]);
        appear[key]++;
    }

    for(int z=0;z<128;z++) if(appear[z]>0) putchar(char(z));
    return 0;
}

T2

#include "stdio.h"
#include "string.h"
int main()
{
    char s[520][101];   // 字符串储存
    int N,appear[520];  // 模拟排序
    scanf("%d",&N);

    for(int z=0;z<N;z++) {
        scanf("%s",&s[z]);
        appear[z] = z;  // 记录s[z]字符串下标
    }

    for(int z=0;z<N;z++){
        int min = appear[z];
        for(int z1=z+1;z1<N;z1++){
            int flag = appear[z1];
            if(strlen(s[min])> strlen(s[flag])){
                appear[z1] = min;
                min = flag;
            }
        }
        appear[z] = min;
    }

    printf("%s",s[appear[0]]);
    for(int z=1;z<N;z++) printf(" %s",s[appear[z]]);
    return 0;
}

T3

#include "stdio.h"
#include "string.h"
void print(char s[],int deep,int tail);
int main()
{
    char s[10001];
    gets(s);
    print(s,0, strlen(s));
    return 0;
}
void print(char s[],int deep,int tail){
    if(deep==tail) return;
    if(s[deep]>='a' && s[deep]<='z') putchar(s[deep]);
    print(s,deep+1,tail);
}


我就好奇你们能看到图片的字?😂还是我电脑有问题

一看题主就是OIer.

样例看不太清楚,应该是对的。

// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;

const int INF = 181;
char c[INF];

int main(){
    ios :: sync_with_stdio(false); // 加速小妙招
    
    cin >> c;
    sort(c, c + int(strlen(c))); // 排序
    cout << c << endl;
    
    return 0;
}

第二个

// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;

const int INF = 114514; // 数据范围还不知道
int n;

struct str{
    int len;
    string s;
} m[INF];

bool cmp(str a, str b){
    return a.len < b.len;
}

int main(){
    ios :: sync_with_stdio(false);
    
    cin >> n;
    for(int i=1; i<=n; i++){
        cin >> m[i].s;
        m[i].len = m[i].s.size();
    }
    sort(m+1, m+1+n, cmp);
    for(int i=1; i<=n; i++){
        cout << m[i].s << " ";
    }
    
    return 0;
}

最后一个

// Author:PanDaoxi
#include <bits/stdc++.h>
using namespace std;

string s;

void f(string t, int k){
    if(k == t.size()) return;
    else{
        if('a' <= t[k] && t[k] <= 'z'){
            cout << t[k];
        }
        return f(t, k+1);
    }
}

int main(){
    ios :: sync_with_stdio(false);
    
    cin >> s;
    f(s, 0);
    
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^