题目描述 用指针变量对两个整数按从小到大排序。 C: #include <stdio.h> int main() { int *p1, *p2, *p; int a, b; scanf("%d%d", &a, &b); p1= &a; p2= &b; if (a > b) { /******************************* 请在该部分补充缺少的代码 ********************************/ } printf("min:%d\n", *p1); printf("max:%d\n", *p2); return 0; }
时间: 2023-08-16 20:08:30 浏览: 40
以下是对程序缺失部分的补充:
if (*p1 > *p2) {
p = p1;
p1 = p2;
p2 = p;
}
printf("min:%d\n", *p1);
printf("max:%d\n", *p2);
在if语句中,通过比较p1和p2指向的整数的大小,判断它们的大小关系。如果p1指向的整数大于p2指向的整数,则需要交换它们的指针变量的值,使得p1指向较小的数,p2指向较大的数。在交换指针变量的值时,需要借助一个临时指针变量p。最后,输出p1和p2指向的整数,即可得到按从小到大排序后的结果。
相关问题
C语言题目:使用指针编写程序,用选择法将输入的n个整数按从小到大的顺序排列 #include<stdio.h> #define N 20 int main() { /***** 用选择法排序 *****/ /********** Begin *********/ /********** End **********/ } 测试输入: 10 91 1 42 32 9 57 6 33 2 88 预期输出: 1 2 6 9 32 33 42 57 88 91
以下是使用指针编写的 C 语言程序,用选择法将输入的 n 个整数按从小到大的顺序排列:
```
#include <stdio.h>
#define N 20
int main() {
int n, i, j, temp, *p;
int a[N];
printf("请输入数字个数 n:");
scanf("%d", &n);
printf("请输入 %d 个数字:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n - 1; i++) {
p = &a[i];
for (j = i + 1; j < n; j++) {
if (*p > a[j]) {
p = &a[j];
}
}
if (p != &a[i]) {
temp = a[i];
a[i] = *p;
*p = temp;
}
}
printf("排序后的结果为:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
在该程序中,我们首先定义了一个长度为 N 的整型数组 a 和一个指针变量 p,用于指向数组中的元素。然后,我们使用 scanf 函数从标准输入中获取数字个数 n 和 n 个数字,并将其存储到数组 a 中。
接下来,我们使用选择排序算法对数组 a 进行排序。在每一轮排序中,我们将 p 指向当前未排序的元素中最小的元素。然后,我们将 a[i] 和 *p 交换位置(如果 a[i] 不是当前未排序元素中最小的元素的话)。这样,在每一轮排序后,a[0] 至 a[i] 中的元素就是已排序的元素,a[i+1] 至 a[n-1] 中的元素是未排序的元素。
最后,我们使用 printf 函数将排序后的结果输出到标准输出中。
运行该程序,输入测试输入,即可得到预期输出。
输入七个整数,按从小到大的顺序排序,并输出 要求以数组作为实参,以指针作为形参 给定代码如下,提交时不需要加上 #include <stdio.h> void sort(int *a); int main() { int num[7],i; for(i=0; i<7; i++) scanf("%d",&num[i]); sort(num); return 0; } 输入 七个整数 输出 升序后的七个数
好的,以下是代码实现:
```
#include <stdio.h>
void sort(int *a);
int main() {
int num[7], i;
for(i = 0; i < 7; i++) {
scanf("%d", &num[i]);
}
sort(num);
for(i = 0; i < 7; i++) {
printf("%d ", num[i]);
}
return 0;
}
void sort(int *a) {
int i, j, temp;
for(i = 0; i < 7; i++) {
for(j = i + 1; j < 7; j++) {
if(*(a + j) < *(a + i)) {
temp = *(a + j);
*(a + j) = *(a + i);
*(a + i) = temp;
}
}
}
}
```
输入七个整数后,程序会调用 `sort` 函数进行排序,排序结果保存在原数组中。最后程序会输出升序后的七个数。注意,此处使用指针作为形参传递数组,指针变量 `a` 指向原数组的首地址,通过指针的运算操作可以实现对数组元素的访问和修改。