输入任意字串,将串中除了首尾字符的其他字符升序排列显示,串中字符个数最多20个。
题干 | 输入任意字串,将串中除了首尾字符的其他字符升序排列显示,串中字符个数最多20个。 | ||
输入样例 | gfedcba | ||
输出样例 | gbcdefa |
选择排序
#include<stdio.h>
int main() {
char a[20],t;
int i = 0, len = 0,j,minxb;
//gets(a);
scanf("%s",a);
while (a[len])
len++;
for (i = 1; i < len - 2; i++) {
minxb = i;
for (j = i + 1; j < len - 1; j++) {
if (a[j] < a[minxb])
minxb = j;
}
if (minxb != i) {
t=a[i], a[i] = a[minxb],a[minxb]=t;
}
}
printf("%s", a);
return 0;
}
冒泡排序
插入排序
输入三个字符串,求最大串输出,串中字符个数最多20个。
题干 | 输入三个字符串,求最大串输出,串中字符个数最多20个。 | ||
输入样例 | bbb ccc aaa | ||
输出样例 | ccc |
#include<stdio.h>
#include<string.h>
int main() {
char a[30], b[30], c[30], max[30];
scanf("%s%*c%s%*c%s", a, b, c);
strcpy(max, a);
if (strcmp(b , max)>0) {
strcpy(max, b);
}
if (strcmp(c , max)>0) {
strcpy(max, c);
}
puts(max);
return 0;
}
输入三个字符串,从小到大的顺序输出,串中字符个数最多20个。
题干 | 输入三个字符串,从小到大的顺序输出,串中字符个数最多20个。 | ||
输入样例 | ccc aaa bbb | ||
输出样例 | aaa bbb ccc |
#include<stdio.h>
#include<string.h>
int main() {
char a[30], b[30], c[30],t[30];
scanf("%s%*c%s%*c%s", a, b, c);
if (strcmp(a, b)>0) {
strcpy(t, a), strcpy(a, b), strcpy(b, t);
}
if (strcmp(a, c)>0) {
strcpy(t, a), strcpy(a, c), strcpy(c, t);
}
if (strcmp(b, c)>0) {
strcpy(t, b), strcpy(b, c), strcpy(c, t);
}
printf("%s %s %s", a, b, c);
return 0;
}
输入任意个字串,判断是否为回文串,是显示yes,否则显示no,输入用end结束,串中字符个数最多20个。
题干 | 输入任意个字串,判断是否为回文串,是显示yes,否则显示no,输入用end结束,串中字符个数最多20个。 | ||
输入样例 | ikjki abb abba end | ||
输出样例 | yes no yes |
#include<stdio.h>
#include<string.h>
int main() {
char a[20];
int i=0, j;
while(scanf("%s",a),strcmp(a,"end")){
while (a[i] != '\0') i++;
i--;
j = 0;
while (j < i) {
if (a[i] == a[j]) {
i--, j++;
}
else {
break;
}
}
if (j >= i) {
printf("yes\n");
}
else
printf("no\n");
}
return 0;
}
从键盘输入N对字符串,比较各对串大小,若两串相等显示0,若两串不等显示第一次不等字符ascii码差值。字串最多20个字符,若某串提前结束计算字符和\0的差值。
题干 | 从键盘输入N对字符串,比较各对串大小,若两串相等显示0,若两串不等显示第一次不等字符ascii码差值。字串最多20个字符,若某串提前结束计算字符和\0的差值。 | ||
输入样例 | 5 asd asd ASDF ASDH ASDHG ASDGH ASD ASDA ASDA ASD | ||
输出样例 | 0 -2 1 -65 65 |
#include<stdio.h>
int main() {
char a[20], b[20];
int i = 0, n;
scanf("%d", &n);
while (n--) {
scanf("%s%*c%s", a, b);
while (a[i] != '\0' && b[i] != '\0' && a[i] == b[i])
i++;
printf("%d\n", a[i] - b[i]);
}
return 0;
}