C语言定义两个整型变量用于存放键盘上输入的两个整数,然后用指针变量作为函数实参,调用对两个整数进行由大到小排序的sort函数,最后输出排序后的两个整数
时间: 2023-12-19 18:05:04 浏览: 92
代码如下:
```c
#include <stdio.h>
// 由大到小排序的函数
void sort(int *a, int *b)
{
if (*a < *b) {
int temp = *a;
*a = *b;
*b = temp;
}
}
int main()
{
int num1, num2;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
// 调用排序函数
sort(&num1, &num2);
printf("排序后的两个整数为:%d %d\n", num1, num2);
return 0;
}
```
首先通过 `scanf` 函数获取用户输入的两个整数,然后将它们的地址作为实参传递给 `sort` 函数进行排序。在排序函数中,如果第一个参数小于第二个参数,则交换它们的值,从而实现由大到小的排序。最后在主函数中输出排序后的两个整数。
相关问题
C语言用变量的指针作为函数调用的实参,降序输出3个整数。
可以使用指针作为函数的实参来实现降序输出三个整数。以下是一个示例代码:
```c
#include <stdio.h>
// 函数声明
void sortDescending(int* ptr1, int* ptr2, int* ptr3);
int main() {
int num1, num2, num3;
printf("请输入三个整数: ");
scanf("%d %d %d", &num1, &num2, &num3);
// 函数调用
sortDescending(&num1, &num2, &num3);
printf("降序输出: %d %d %d\n", num1, num2, num3);
return 0;
}
// 函数定义
void sortDescending(int* ptr1, int* ptr2, int* ptr3) {
if (*ptr1 < *ptr2) {
int temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
}
if (*ptr1 < *ptr3) {
int temp = *ptr1;
*ptr1 = *ptr3;
*ptr3 = temp;
}
if (*ptr2 < *ptr3) {
int temp = *ptr2;
*ptr2 = *ptr3;
*ptr3 = temp;
}
}
```
在这个例子中,`sortDescending` 函数接受三个整数的指针作为实参,并通过比较和交换来实现降序排序。在 `main` 函数中,我们输入三个整数,并将它们的地址作为实参传递给 `sortDescending` 函数。最后,我们输出排序后的结果。
将数组中n个整数按相反顺序存放,用指针变量做实参 c语言
可以使用指针变量作为实参,通过指针操作实现将数组中n个整数按相反顺序存放的功能。
以下是示例代码:
```c
#include <stdio.h>
void reverse(int *arr, int n) {
int *p1 = arr;
int *p2 = arr + n - 1;
while (p1 < p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
printf("Before reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, n);
printf("After reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个示例中,reverse 函数接受两个参数,第一个参数是指向数组的指针,第二个参数是数组的长度。函数内部使用两个指针 p1 和 p2 分别指向数组的开头和结尾,然后交换它们所指向的元素,直到 p1 和 p2 相遇为止,即完成了数组元素的反转。在 main 函数中,先输出原数组,然后调用 reverse 函数,再输出反转后的数组。