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;
}
};
// 如果不存在,跳出循环返回-1
return -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;
}