//
// Created by 86184 on 2024/8/13.
//
//9.十五个数按降序存在一个数组中
//输入一个数,折半查找它是数组中第几个元素,不在数组中返回无此数
int main() {
int array[15] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
int low = 0, high = 14, mid = 0, key = 15;
while (low <= high) {
mid = (low + high) / 2;
if (array[mid] == key) {
printf("该数是数组中的第:%d个数", mid + 1);
return 0;
} else if (array[mid] > key) low = mid + 1;
else high = mid - 1;
}
printf("无此数");
return 0;
}
//
// Created by 86184 on 2024/8/13.
//
//10.有一篇文章,共有三行,每行有80个字符。要求分别统计出其中的
//英文,大写字母,小写字母,数字,空格已经其他字符。
int main() {
char s[3][5] = {{"aAB 9"},
{"*cc76"},
{"?*. B"}};
int oldCount = 0, minCount = 0, number = 0, key = 0, other = 0;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 5; ++j) {
if ('a' <= s[i][j] && s[i][j] <= 'z')
minCount++;
else if ('A' <= s[i][j] && s[i][j] <= 'Z')
oldCount++;
else if ('0' <= s[i][j] && s[i][j] <= '9')
number++;
else if (s[i][j] && s[i][j] == ' ')
key++;
else
other++;
}
}
printf("英文大写字母的个数为:%d\n", oldCount);
printf("英文小写字母的个数为:%d\n", minCount);
printf("数字的个数为:%d\n", number);
printf("空格个数为:%d\n", key);
printf("其它字符个数为:%d\n", other);
return 0;
}
//
// Created by 86184 on 2024/8/13.
//
//11.绘制图案
//* * * * *
// * * * * *
// * * * * *
// * * * * *
// * * * * *
int main() {
char array[5][5] = {{'\0'}};
char key = ' ';
int k = 0;
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 5; ++j) {
array[i][j] = '*';
}
}
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 5; ++j) {
printf("%c ", array[i][j]);
}
k = i;
printf("\n", key);
while (k >= 0) {
printf("%c", key);
printf("%c", key);
k--;
}
}
return 0;
}
//
// Created by 86184 on 2024/8/13.
//
//12.有一行电文,按照下面规律译码
//A-Z a-z
//B-Y b-y
//C-X c-x
// . .
// . .
// . .
//第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母不变.
int main() {
char s[10] = {"BACabcBCA?"};
int i = 0, j = 0, m = 0;
char k = '0';
printf("输出密码为:\n");
fflush(stdout);
for (int l = 0; l < 10; ++l) {
printf("%c", s[l]);
}
printf("\n");
while (i < 10) {
k = s[i];
if (s[i] >= 'A' && s[i] <= 'Z') {
j = s[i] - 'A' + 1;
m = 26 - j + 1;
k = m + 'A' - 1;
}
if (s[i] >= 'a' && s[i] <= 'z') {
j = s[i] - 'a' + 1;
m = 26 - j + 1;
k = m + 'a' - 1;
}
s[i] = k;
i++;
}
printf("输出原文为:\n");
fflush(stdout);
for (int l = 0; l < 10; ++l) {
printf("%c", s[l]);
}
return 0;
}