c语言练习11周(6~10)

输入任意字串,将串中除了首尾字符的其他字符升序排列显示,串中字符个数最多20个。

题干

输入任意字串,将串中除了首尾字符的其他字符升序排列显示,串中字符个数最多20个。
输入样例 gfedcba
输出样例 gbcdefa

选择排序

#include
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;
}

冒泡排序

c语言练习11周(6~10)_第1张图片

插入排序

c语言练习11周(6~10)_第2张图片

 

输入三个字符串,求最大串输出,串中字符个数最多20个。

题干 输入三个字符串,求最大串输出,串中字符个数最多20个。
输入样例 bbb
ccc
aaa
输出样例 ccc

 

#include
#include
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
#include
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
#include
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
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;
}

你可能感兴趣的:(c语言,算法,数据结构)