C语言编写函数,对3个整数a、b、c进行处理,使得a最小,c最大。 函数接口定义: void int3sort ( int *pa, int *pb, int *pc ); 裁判测试程序样例: #include <stdio.h> void int3sort ( int *pa, int *pb, int *pc ); int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); int3sort ( &a, &b, &c ); printf( "%d %d %d", a, b, c ); return 0; } /* 请在这里填写答案 */
时间: 2024-03-26 21:36:00 浏览: 80
答案如下:
```c
void int3sort(int *pa, int *pb, int *pc) {
int tmp;
if (*pa > *pb) {
tmp = *pa;
*pa = *pb;
*pb = tmp;
}
if (*pa > *pc) {
tmp = *pa;
*pa = *pc;
*pc = tmp;
}
if (*pb > *pc) {
tmp = *pb;
*pb = *pc;
*pc = tmp;
}
}
```
思路:通过比较三个指针所指向的变量的大小,交换它们的值,最终实现对三个变量的排序。
相关问题
用c语言交换两个整数的值,函数接口定义:void fun (int *a,int *b);
下面是交换两个整数的值的 C 语言代码:
```c
void fun(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
调用这个函数时,传入两个整数的地址即可:
```c
int main() {
int a = 1, b = 2;
printf("Before swap: a = %d, b = %d\n", a, b);
fun(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
```
输出:
```
Before swap: a = 1, b = 2
After swap: a = 2, b = 1
```
C语言编写函数,求两个整数的最大公约数与最小公倍数。 函数接口定义: void func ( int x, int y, int *mcd, int *lcm ); 裁判测试程序样例: #include <stdio.h> void func ( int x, int y, int *mcd, int *lcm ); int main() { int a, b, mcd, lcm; scanf("%d%d", &a, &b); func(a, b, &mcd, &lcm); printf("Maximum common divisor : %d\n", mcd); printf("Least common multiple : %d\n", lcm); } /* 请在这里填写答案 */
答案如下:
```c
void func(int x, int y, int *mcd, int *lcm) {
int max, min, r, tmp;
max = x > y ? x : y;
min = x < y ? x : y;
while (min != 0) {
r = max % min;
max = min;
min = r;
}
*mcd = max;
tmp = x * y / max;
*lcm = tmp;
}
```
思路:先求出两个数的最大值和最小值,通过辗转相除法计算最大公约数,再通过最大公约数计算最小公倍数。最后将计算结果存储到指针所指向的变量中。
阅读全文