题目描述 用指针变量对两个整数按从小到大排序。 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 18:08:30 浏览: 91
以下是对程序缺失部分的补充:
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指向的整数,即可得到按从小到大排序后的结果。
相关问题
#include <stdio.h> #include <stdlib.h> void fun(int *a,int *b,int *c,int *d) { } main() {int a, b, c, d; printf("请输入4个整数: "); scanf("%d%d%d%d",&a,&b,&c,&d); printf("原始顺序:%d,%d,%d,%d\n",a,b,c,d); fun(&a,&b,&c,&d); printf("处理后:%d,%d,%d,%d\n",a,b,c,d); system("pause"); return 0; }用C语言
编写一个函数fun,实现将四个整数按照从小到大的顺序排列,并将排序结果存储在传入的指针变量a、b、c、d所对应的内存空间中。
函数实现如下:
```c
void fun(int *a, int *b, int *c, int *d) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*a > *d) {
temp = *a;
*a = *d;
*d = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*b > *d) {
temp = *b;
*b = *d;
*d = temp;
}
if (*c > *d) {
temp = *c;
*c = *d;
*d = temp;
}
}
```
在main函数中,调用fun函数,将四个整数按照从小到大的顺序进行排列。最后输出处理后的结果。
完整代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
void fun(int *a, int *b, int *c, int *d) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*a > *d) {
temp = *a;
*a = *d;
*d = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*b > *d) {
temp = *b;
*b = *d;
*d = temp;
}
if (*c > *d) {
temp = *c;
*c = *d;
*d = temp;
}
}
int main() {
int a, b, c, d;
printf("请输入4个整数: ");
scanf("%d%d%d%d", &a, &b, &c, &d);
printf("原始顺序:%d,%d,%d,%d\n", a, b, c, d);
fun(&a, &b, &c, &d);
printf("处理后:%d,%d,%d,%d\n", a, b, c, d);
system("pause");
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); 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` 指向原数组的首地址,通过指针的运算操作可以实现对数组元素的访问和修改。
阅读全文