1. 求数组中第二大的值
#include <stdio.h>int main()
{int arr[] = {12, 97, 1, 5};int len = sizeof(arr) / sizeof(arr[0]);// printf("%d\n",len); // 9// 冒泡排序(从小到大)for (int i = 0; i < len; i++){for (int j = 0; j < len - i - 1; j++){// printf("arr[j] = %d ,arr[j + 1] = %d\n", arr[j], arr[j + 1]);if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;// printf("i=%d,j=%d\n", i, j);}}}for (int i = 0; i < len; i++){// printf("%d\n", arr[i]);}printf("第二大的值是:%d\n", arr[len - 2]);return 0;
}
2. 整数的平均值
#include <stdio.h>int main()
{int arr[5] = {};int len = sizeof(arr) / sizeof(arr[0]);printf("请输入5个整数: ");int sum; // 和for (int i = 0; i < len; i++){scanf("%d", &arr[i]);// printf("%d", arr[i]);sum += arr[i];}printf("和为: %d\n", sum);int result = sum / len;printf("平均值为: %d\n", result);return 0;
}
3. 查找某个整数在整数数组的索引位置
#include <stdio.h>/*
编写一个函数find_index,
接受一个整型数组、数组的长度和一个整数作为参数,
查找并返回该整数在数组中的索引位置。
如果该整数不存在于数组中,则返回-1。
在主函数中定义一个包含10个元素的数组,
并调用find_index函数查找某个整数的索引位置并输出。
*/int find_index(int *arr, int len, int num)
{for (int i = 0; i < len; i++){// 判断当前数是否存在if (num == arr[i]){return i;}};// 如果不存在,跳出循环返回-1return -1;
};int main()
{int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int len = sizeof(arr) / sizeof(arr[0]);int index = find_index(arr, len, 4);printf("%d\n", index);return 0;
}
4. 统计字符串中数字字符的个数
#include <stdio.h>
#include <string.h>// 编写一个程序,接受用户输入的一个字符串,然后统计字符串中数字字符的个数并输出。
int main()
{char str[100] = {};printf("请输入一个字符串: ");// scanf("%s", str);fgets(str, sizeof(str), stdin);// printf("%s\n", str);int length = strlen(str);printf("字符串长度为:%d\n", length); // abc123 /0 // 7// 保存数量int count;for (int i = 0; i < length - 1; i++){// printf("%c\n", str[i]);// 数字// 字符型变量赋值,需要使用''括起来,在存储时,实际存储的是ASCII码if (str[i] >= '0' && str[i] <= '9'){printf("%c\n", str[i]);count++;}}printf("个数: %d\n", count);return 0;
}
5. 从小到大排序
#include <stdio.h>
// 数组的排序 1,3,6,2,5 ==》1,2,3,5,6
int main()
{int arr[5] = {3, 1, 6, 2, 5};int len = sizeof(arr) / sizeof(arr[0]);// 从小到大排// 次数for (int i = 0; i < len; i++){for (int j = 0; j < len - 1 - i; j++){printf("arr[j] = %d ,arr[j + 1] = %d\n", arr[j], arr[j + 1]);if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;printf("i=%d,j=%d\n", i, j);}}}for (int i = 0; i < len; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}