3. 利用指针将10个数排序。
时间: 2024-05-10 12:16:11 浏览: 8
这里给出一种使用冒泡排序的方法:
```c
#include <stdio.h>
void 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[10] = {4, 2, 8, 5, 1, 3, 9, 6, 10, 7};
sort(arr, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
return 0;
}
```
输出:
```
1 2 3 4 5 6 7 8 9 10
```
解释:sort函数使用冒泡排序对数组进行排序,主函数中声明一个大小为10的整型数组,并初始化,然后调用sort函数进行排序,最后输出排序后的数组。在sort函数中,使用指针访问数组元素,用指针交换数组中的两个元素。
相关问题
3.利用指针将10个数排序。C语言
可以使用冒泡排序法来实现:
```
#include <stdio.h>
void bubble_sort(int *arr, int len){
int i, j, temp;
for(i=0; i<len-1; i++){
for(j=0; j<len-1-i; j++){
if(*(arr+j) > *(arr+j+1)){
temp = *(arr+j);
*(arr+j) = *(arr+j+1);
*(arr+j+1) = temp;
}
}
}
}
int main(){
int arr[10] = {9, 3, 5, 2, 8, 4, 7, 1, 6, 0};
int i;
printf("排序前:");
for(i=0; i<10; i++){
printf("%d ", arr[i]);
}
bubble_sort(arr, 10);
printf("\n排序后:");
for(i=0; i<10; i++){
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
排序前:9 3 5 2 8 4 7 1 6 0
排序后:0 1 2 3 4 5 6 7 8 9
```
C语言. 利用指针将10个学生的姓名排序
下面是一个利用指针将10个学生姓名排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_STUDENT_NUM 10
void sort_names(char **names, int n);
int main() {
char *names[MAX_STUDENT_NUM] = {
"Alice",
"Bob",
"Charlie",
"David",
"Eva",
"Frank",
"Grace",
"Henry",
"Ivy",
"Jack"
};
int n = sizeof(names) / sizeof(names[0]);
sort_names(names, n);
printf("Sorted names:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
return 0;
}
void sort_names(char **names, int n) {
char *temp_name;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(names[i], names[j]) > 0) {
temp_name = names[i];
names[i] = names[j];
names[j] = temp_name;
}
}
}
}
```
在本示例中,我们定义了一个 `char *names[MAX_STUDENT_NUM]` 数组,用于存储10个学生的姓名。然后,我们定义了一个 `sort_names` 函数来对这些姓名进行排序。该函数使用两个嵌套的循环来比较每对姓名,并在必要时交换它们的位置,以便按字母顺序排序。在 `main` 函数中,我们调用 `sort_names` 函数来对学生姓名进行排序,并使用循环打印出排序后的姓名列表。