Auto commit

This commit is contained in:
smallkun 2025-03-14 22:28:06 +08:00
parent bf3450efd7
commit 08685dda81
3 changed files with 126 additions and 38 deletions

70
2207/数组练习题.md Normal file
View File

@ -0,0 +1,70 @@
1. **数组求和**
- 编写一个程序定义一个包含10个整数的数组计算并输出数组中所有元素的和。
2. **数组最大值和最小值**
- 编写一个程序定义一个包含10个整数的数组找到并输出数组中的最大值和最小值。
3. **数组逆序**
- 编写一个程序定义一个包含10个整数的数组将数组中的元素逆序存放并输出。
4. **查找元素**
- 编写一个程序定义一个包含10个整数的数组输入一个整数查找该整数是否在数组中。如果存在输出其位置否则输出“未找到”。
5. **数组平均值**
- 编写一个程序定义一个包含10个整数的数组计算并输出数组中所有元素的平均值。
------
### **中级练习题**
6. **数组排序**
- 编写一个程序定义一个包含10个整数的数组使用冒泡排序或选择排序对数组进行升序排序并输出排序后的数组。
7. **数组去重**
- 编写一个程序定义一个包含10个整数的数组去除数组中的重复元素并输出去重后的数组。
8. **数组合并**
- 编写一个程序定义两个包含5个整数的数组将这两个数组合并为一个包含10个整数的数组并输出合并后的数组。
9. **数组查找第二大值**
- 编写一个程序定义一个包含10个整数的数组找到并输出数组中的第二大值。
10. **数组元素统计**
- 编写一个程序定义一个包含10个整数的数组统计数组中正数、负数和零的个数并输出结果。
------
### **高级练习题**
11. **二维数组转置**
- 编写一个程序定义一个3x3的二维数组将其转置行列互换并输出转置后的数组。
12. **矩阵乘法**
- 编写一个程序定义两个3x3的二维数组计算它们的乘积并输出结果矩阵。
13. **数组二分查找**
- 编写一个程序定义一个已排序的包含10个整数的数组输入一个整数使用二分查找算法查找该整数是否在数组中。如果存在输出其位置否则输出“未找到”。
14. **数组元素移动**
- 编写一个程序定义一个包含10个整数的数组将数组中的所有元素向左移动一位第一个元素移动到末尾并输出移动后的数组。
15. **数组子数组和**
- 编写一个程序定义一个包含10个整数的数组找到数组中连续子数组的最大和并输出该和。
------
### **综合练习题**
16. **数组元素频率统计**
- 编写一个程序定义一个包含10个整数的数组统计每个元素在数组中出现的次数并输出结果。
17. **数组元素交换**
- 编写一个程序定义一个包含10个整数的数组将数组中的奇数和偶数分开奇数在前偶数在后并输出结果。
18. **数组元素回文判断**
- 编写一个程序定义一个包含10个整数的数组判断该数组是否是一个回文数组即正序和逆序相同并输出结果。
19. **数组元素模式匹配**
- 编写一个程序定义一个包含10个整数的数组输入一个子数组长度为3判断该子数组是否在原数组中出现并输出结果。
20. **数组元素旋转**
- 编写一个程序定义一个包含10个整数的数组输入一个整数k将数组中的元素向右旋转k位并输出旋转后的数组。
------
### **附加挑战题**
21. **数组元素最大差值**
- 编写一个程序定义一个包含10个整数的数组找到数组中两个元素的最大差值要求较大元素在较小元素之后并输出结果。
22. **数组元素最长连续序列**
- 编写一个程序定义一个包含10个整数的数组找到数组中最长的连续整数序列的长度并输出结果。
23. **数组元素螺旋遍历**
- 编写一个程序定义一个3x3的二维数组按照螺旋顺序遍历数组并输出结果。
24. **数组元素缺失值查找**
- 编写一个程序定义一个包含n-1个整数的数组数组中的元素是1到n之间的整数且没有重复值找到缺失的那个整数并输出结果。
25. **数组元素滑动窗口最大值**
- 编写一个程序定义一个包含10个整数的数组输入一个整数kk < 10找到数组中每个大小为k的滑动窗口的最大值并输出结果

View File

@ -33,29 +33,38 @@ int main(){
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char str[100];
char temp;
int i, j;
gets(str);
for(i=0;i<strlen(str)-1;i++){
for(j=0;j<strlen(str)-1-i;j++){
if(*(str+j) > *(str+j+1)){
temp = *(str+j);
*(str+j) = *(str+j+1);
*(str+j+1) = temp;
}
}
}
puts(str);
return 0;
// 比较函数,用于 qsort
int compare_strings(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
// 测试用例:字符串数组
const char *strings[] = {
"banana",
"apple",
"cherry",
"date",
"blueberry"
};
// 计算数组的长度
int length = sizeof(strings) / sizeof(strings[0]);
// 使用 qsort 对字符串数组进行排序
qsort(strings, length, sizeof(const char *), compare_strings);
// 输出排序后的字符串数组
printf("Sorted strings:\n");
for (int i = 0; i < length; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
### 3. 字符串插入

View File

@ -1,24 +1,33 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char str[100];
char temp;
int i, j;
gets(str);
for(i=0;i<strlen(str)-1;i++){
for(j=0;j<strlen(str)-1-i;j++){
if(*(str+j) > *(str+j+1)){
temp = *(str+j);
*(str+j) = *(str+j+1);
*(str+j+1) = temp;
}
}
}
puts(str);
return 0;
// 比较函数,用于 qsort
int compare_strings(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
// 测试用例:字符串数组
const char *strings[] = {
"banana",
"apple",
"cherry",
"date",
"blueberry"
};
// 计算数组的长度
int length = sizeof(strings) / sizeof(strings[0]);
// 使用 qsort 对字符串数组进行排序
qsort(strings, length, sizeof(const char *), compare_strings);
// 输出排序后的字符串数组
printf("Sorted strings:\n");
for (int i = 0; i < length; i++) {
printf("%s\n", strings[i]);
}
return 0;
}