c语言刷题第10周(16~20)

规律:

若多个次数最多按ASCII码顺序输出。

用for循环i取(0~26)

则输出满足条件的字符串中位置最靠前的那个。

用while循环遍历(while(a[i]!='\0'))

从键盘输入任意只含有大小写字母的串s(最多100个字符),统计串中出现次数最多的字母输出,不区分大小写,若多个次数最多按ASCII码顺序输出。

题干 从键盘输入任意只含有大小写字母的串s(最多100个字符),统计串中出现次数最多的字母输出,不区分大小写,若多个次数最多按ASCII码顺序输出。
输入样例 abcdABCDabhijklmnopqytf
输出样例 a-3
b-3
#include
int main() {
	char a[100];
	int n[26]={0}, i = 0, max = 0;
	gets(a);
	while (a[i] != '\0') {
		if (a[i] >= 'A' && a[i] <= 'Z') {
			a[i] += 32;
		}
		n[a[i] - 'a']++;
		i++;
	}
	for (i = 0; i < 26; i++) {
		if (n[i] > max) {
			max = n[i];
		}
	}
	for (i = 0; i < 26; i++) {
		if (n[i] == max) {
			printf("%c-%d\n", i + 'a', n[i]);
		}
	}
	return 0;
}

 输入若干个只包含小写字母的串,判断是否存在只在字符串中出现过一次的字符。
若存在,则输出满足条件的字符串中位置最靠前的那个。

题干 输入若干个只包含小写字母的串,判断是否存在只在字符串中出现过一次的字符。
若存在,则输出满足条件的字符串中位置最靠前的那个。
若没有,输出  no。
各字符串的长度不超过  100。
输入样例 abceabcd
abccbadddffhghg
goodgoodstudydaydayup
输出样例 e
no
s

 

#include
int main() {
	char a[100];
	int n[26]={0}, i = 0;
	while (~scanf("%s",a)) {//~scanf("%s",a)
		for (i = 0; i < 26; i++) {
			n[i] = 0;
		}
		i = 0;
		while (a[i] != '\0') {
			if (a[i] >= 'A' && a[i] <= 'Z') {
				a[i] += 32;
			}
			n[a[i] - 'a']++;
			i++;
		}
		i = 0;
		while (a[i] != '\0') {
			if (n[a[i] - 'a'] == 1) {
				printf("%c\n", a[i]);
				break;
			}
			i++;
		}
		if (a[i] == 0) {
			printf("no\n");
		}
	}
	return 0;
}

 输入只含小写字母的字串(最多30个字符),将串中的各字母字符后移变换为第4个字符,若后移超过z字符,则折回从a字符开始,串中字符个数最多40个。

题干 输入只含小写字母的字串(最多30个字符),将串中的各字母字符后移变换为第4个字符,若后移超过z字符,则折回从a字符开始,串中字符个数最多40个。
如:
a->e    b->f    c->g    ......    v->z
w->a    x->b    y->c    z->d
输入样例 abcdwxyz
输出样例 efghabcd

 

#include
int main() {
	char a[30];
	int i=0;
	gets(a);
	while (a[i] != '\0') {
		a[i] = 'a' + (a[i] - 'a'+4) % 26;
		i++;
	}
	puts(a);
	return 0;
}

 输入任意字串(最多30个字符),将串中的各字母字符后移变换为第4个字符,若后移超过z/Z字符,则折回从a/A字符开始,非字母字符不变换,串中字符个数最多40个。

题干 输入任意字串(最多30个字符),将串中的各字母字符后移变换为第4个字符,若后移超过z/Z字符,则折回从a/A字符开始,非字母字符不变换,串中字符个数最多40个。
如:
a->e    b->f    c->g    ......    v->z
w->a    x->b    y->c    z->d
大写字母类似
输入样例 abcABC09*wxyzWXYZ
输出样例 efgEFG09*abcdABCD
#include
int main() {
	char a[30];
	int i = 0;
	gets(a);
	while (a[i] != '\0') {
		if (a[i] >= 'a' && a[i] <= 'z') {
            a[i] = 'a' + (a[i] - 'a' + 4) % 26;
		}
		else if (a[i] >= 'A' && a[i] <= 'Z') {
			a[i] = 'A' + (a[i] - 'A' + 4) % 26;
		}
		else {
			a[i];
		}
		i++;
	}
	puts(a);
	return 0;
}

输入M行N列(M,N<=10),及M行N列按矩阵A,N行M列矩阵B,按下图公式计算C=A*B并输出。

c语言刷题第10周(16~20)_第1张图片 

输入样例 2  4

1  2  3  4
5  6  7  8

1  2
3  4
5  6
7  8
输出样例 *50**60*
*114**140*

 

#define M 10
#define N 10
#include
int main() {
	int a[M][N], b[M][N], c[M][N],i,j,k,m,n,s;
	scanf("%d%d", &m, &n);
	for (i = 0; i < m; i++) {
		for (j = 0; j < n; j++) {
			scanf("%d", &a[i][j]);
		}
	}
	for (i = 0; i < n; i++) {
		for (j = 0; j < m; j++) {
			scanf("%d", &b[i][j]);
		}
	}
	for (i = 0; i < m; i++) {
		for (j = 0; j < m; j++) {
			s = 0;
			for (k = 0; k < n; k++) {
				s =s+ a[i][k] * b[k][j];
          }
			c[i][j] = s;
		}
	}
	for (i = 0; i < m; i++) {
		for (j = 0; j < m; j++) {
			printf("*%d*", c[i][j]);
		}
        printf("\n");
	}
	return 0;
}

排三角形 

c语言刷题第10周(16~20)_第2张图片

 

#include
int main()
{
	int k[9] = { 1,2,3,4,5,6,7,8,9 };
	int a, b, c, d, e, f, g, h, i, j, l = 0, m, n, o, p, q, r, s, t, u, P;
	scanf("%d", &P);
	for (j = 0; j < 9; j++)
	{
		a = k[j];
		for (m = 0; m < 9; m++)
			if (a != k[m])
			{
				b = k[m];
				for (n = 0; n < 9; n++)

					if (k[n] != a && k[n] != b)
					{
						c = k[n];
						for (o = 0; o < 9; o++)

							if (k[o] != a && k[o] != b && k[o] != c)
							{
								d = k[o];
								for (p = 0; p < 9; p++)

									if (k[p] != a && k[p] != b && k[p] != c && k[p] != d)
									{
										e = k[p];
										for (q = 0; q < 9; q++)

											if (k[q] != a && k[q] != b && k[q] != c && k[q] != d && k[q] != e)
											{
												f = k[q];
												for (r = 0; r < 9; r++)

													if (k[r] != a && k[r] != b && k[r] != c && k[r] != d && k[r] != e && k[r] != f)
													{
														g = k[r];
														for (s = 0; s < 9; s++)
															if (k[s] != a && k[s] != b && k[s] != c && k[s] != d && k[s] != e && k[s] != f && k[s] != g)
															{
																h = k[s];
																for (t = 0; t < 9; t++)

																	if (k[t] != a && k[t] != b && k[t] != c && k[t] != d && k[t] != e && k[t] != f && k[t] != g && k[t] != h)
																	{
																		i = k[t];
																		if (a < f && f < i && b < d && g < h && c < e && a + b + d + f == f + g + h + i && f + g + h + i == i + e + c + a && i + e + c + a == P)
																			l = l + 1;
																	}

															}
													}

											}

									}

							}

					}

			}
	}

	if (l == 0)
		printf("Not exist");
	else
		printf("%d", l);
	return 0;
}

你可能感兴趣的:(c语言,算法,c++)