考试速救!
最好用比较基础的知识,数组,简单的函数,指针之类的!
!
速度快来!
(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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: