c语言 最大最小值 简单排序(冒泡法、交换法) 与指定数字相同的数的个数
时间: 2023-09-10 13:15:24 浏览: 106
好的,我会尽力回答您的问题。
首先,关于 C 语言中的最大最小值,我们可以使用库函数 `max()` 和 `min()` 来获取数组中的最大值和最小值。
例如,假设我们有一个整数数组 `arr`,可以使用以下代码获取最大值和最小值:
```c
#include <stdio.h>
#include <limits.h>
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
int max = INT_MIN;
int min = INT_MAX;
for (int i = 0; i < n; i++) {
max = (max > arr[i]) ? max : arr[i];
min = (min < arr[i]) ? min : arr[i];
}
printf("Max value: %d\n", max);
printf("Min value: %d\n", min);
return 0;
}
```
输出结果为:
```
Max value: 9
Min value: 1
```
接下来,关于 C 语言中的简单排序,我们可以使用冒泡排序和交换排序来对一个整数数组进行排序。
冒泡排序的基本思路是从左到右依次比较相邻的两个数,如果左边的数大于右边的数,则交换两个数的位置。这样一轮比较下来,最大的数就会被交换到最右边。接下来再从左到右进行一轮比较,但这一次只需要比较前 n-1 个数即可,因为最后一个数已经是最大的了。重复以上操作,直到整个数组有序为止。
以下是使用冒泡排序对一个整数数组进行排序的示例代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
1 1 2 3 3 4 5 5 6 9
```
交换排序的基本思路是从左到右依次选择一个数,然后将这个数与它右边的所有数进行比较,如果这个数大于右边的某个数,则交换这两个数的位置。这样一轮比较下来,最大的数就会被交换到最右边。接下来再从左到右选择一个数,重复以上操作,直到整个数组有序为止。
以下是使用交换排序对一个整数数组进行排序的示例代码:
```c
#include <stdio.h>
void swap_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
swap_sort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
1 1 2 3 3 4 5 5 6 9
```
最后,关于统计数组中指定数字的个数,我们可以遍历整个数组,依次比较每个数是否等于指定数字,如果相等,则计数器加一。最后返回计数器的值即可。
以下是统计数组中指定数字的个数的示例代码:
```c
#include <stdio.h>
int count_num(int arr[], int n, int num) {
int count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] == num) {
count++;
}
}
return count;
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
int num = 5;
int count = count_num(arr, n, num);
printf("%d appears %d times in the array.\n", num, count);
return 0;
}
```
输出结果为:
```
5 appears 2 times in the array.
```
阅读全文
相关推荐


















