用指针方法将n个整数按升序排列
时间: 2023-05-10 08:55:50 浏览: 160
非常感谢您的提问。以下是用指针方法将n个整数按升序排列的代码示例:
```
#include <stdio.h>
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (*(arr+i) > *(arr+j)) {
temp = *(arr+i);
*(arr+i) = *(arr+j);
*(arr+j) = temp;
}
}
}
}
int main() {
int arr[] = {5, 3, 8, 1, 2};
int n = sizeof(arr)/sizeof(int);
int i;
sort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", *(arr+i));
}
return 0;
}
```
希望这个代码示例能够帮助您解决问题。如果您有任何其他问题,请随时提出。
相关问题
用c++的代码用指针方法将n个整数按升序排列
好的,这是一个关于排序的问题,我很乐意为您解答。以下是用指针方法将 n 个整数按升序排列的 C 代码示例:
```c
#include <stdio.h>
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (*(arr + j) < *(arr + i)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
int main() {
int arr[] = {3, 2, 1, 5, 4};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, n);
int i;
for (i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
return 0;
}
```
这段代码使用了双重循环实现了冒泡排序,其中 arr 是一个整型指针,指向第一个元素的地址,n 是数组的长度。sort 函数用来排序,main 函数中我们创建了一个包含 5 个元素的整型数组,并将其传递给 sort 函数进行排序,最后输出排好序的数组。希望这个例子能够帮助您理解如何使用指针来排序整数。
用指针方法将n个整数按升序排列(选择排序)
以下是使用指针方法进行选择排序的示例代码:
```c
#include <stdio.h>
void sort(int *arr, int n) {
int i, j, min_idx, temp;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (*(arr+j) < *(arr+min_idx)) {
min_idx = j;
}
}
temp = *(arr+i);
*(arr+i) = *(arr+min_idx);
*(arr+min_idx) = temp;
}
}
int main() {
int number, i;
printf("请输入要排序的整数个数:");
scanf("%d", &number);
int data[number];
int *pstr[number];
for (i = 0; i < number; i++) {
pstr[i] = &data[i];
scanf("%d", pstr[i]);
}
sort(pstr, number);
printf("排序后的结果为:");
for (i = 0; i < number; i++) {
printf("%d ", *pstr[i]);
}
printf("\n");
return 0;
}
```