编程实现:输入三个整数,按由大到小的顺序输出。 要求: (1) 通过scanf函数输入三个数据并存入三个变量中; (2) 利用指针实现从大到小输出;
时间: 2023-09-17 12:06:16 浏览: 115
### 回答1:
好的,这是一个编程问题,我可以帮您回答。以下是实现代码:
```c
#include <stdio.h>
void sort(int* a, int* b, int* c) {
int temp;
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a < *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*b < *c) {
temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int x, y, z;
printf("请输入三个整数:\n");
scanf("%d %d %d", &x, &y, &z);
sort(&x, &y, &z);
printf("从大到小的顺序为:%d %d %d\n", x, y, z);
return 0;
}
```
如果您有其他问题,可以随时问我。
### 回答2:
编写一个简单的C程序来实现这个要求。首先,我们需要定义三个整数变量,并使用scanf函数从用户那里输入这三个整数。
```c
#include <stdio.h>
int main() {
int num1, num2, num3;
printf("请输入三个整数:\n");
scanf("%d %d %d", &num1, &num2, &num3);
```
接下来,我们需要利用指针来实现从大到小的顺序输出。我们定义一个整数指针数组,并将其指向输入的三个整数变量。然后,我们使用冒泡排序算法对这个指针数组进行排序。
```c
int *ptr[3]; // 定义整数指针数组
ptr[0] = &num1;
ptr[1] = &num2;
ptr[2] = &num3;
int i, j, temp;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2 - i; j++) {
if (*ptr[j] < *ptr[j+1]) { // 如果前一个元素小于后一个元素,交换它们
temp = *ptr[j];
*ptr[j] = *ptr[j+1];
*ptr[j+1] = temp;
}
}
}
```
最后,我们使用循环打印排好序的指针数组对应的值,即从大到小的顺序输出。
```c
printf("按由大到小的顺序输出:\n");
for (i = 0; i < 3; i++) {
printf("%d ", *ptr[i]);
}
printf("\n");
return 0;
}
```
这样,我们就实现了按从大到小顺序输出三个整数的需求。完整的代码如下:
```c
#include <stdio.h>
int main() {
int num1, num2, num3;
printf("请输入三个整数:\n");
scanf("%d %d %d", &num1, &num2, &num3);
int *ptr[3]; // 定义整数指针数组
ptr[0] = &num1;
ptr[1] = &num2;
ptr[2] = &num3;
int i, j, temp;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2 - i; j++) {
if (*ptr[j] < *ptr[j+1]) { // 如果前一个元素小于后一个元素,交换它们
temp = *ptr[j];
*ptr[j] = *ptr[j+1];
*ptr[j+1] = temp;
}
}
}
printf("按由大到小的顺序输出:\n");
for (i = 0; i < 3; i++) {
printf("%d ", *ptr[i]);
}
printf("\n");
return 0;
}
```
当我们运行程序并输入三个整数时,它会按照从大到小的顺序打印出输入的整数。
### 回答3:
```cpp
#include <stdio.h>
void sort(int *a, int *b, int *c) {
int temp;
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*b < *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("由大到小的顺序输出:%d %d %d\n", a, b, c);
return 0;
}
```
在这个程序中,我们首先通过`scanf`函数输入三个整数,并存入变量`a`,`b`和`c`中。然后,我们使用指针来实现从大到小的排序。具体来说,我们定义了一个`sort`函数,该函数接受三个指向整数的指针参数。在`sort`函数中,我们使用了一个临时变量`temp`来交换变量的值,从而达到从大到小的排序目的。
在`main`函数中,我们调用了`sort`函数,并将变量`a`,`b`和`c`的地址作为参数传递给`sort`函数。最后,我们按照从大到小的顺序输出变量`a`,`b`和`c`的值。
阅读全文