用c语音编写程序,以指针实现,任意输入三个数,从大到小输出
时间: 2023-09-26 15:06:52 浏览: 142
输入三个数字,按从大到小输出 C语言代码
### 回答1:
您好!以下是用C语言音编写程序,实现任意输入三个数,从大到小输出的代码:
```c
#include <stdio.h>
int main() {
float a, b, c, temp;
printf("请输入三个数,以空格分隔:");
scanf("%f%f%f", &a, &b, &c);
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;
}
printf("%.2f >= %.2f >= %.2f\n", a, b, c);
return 0;
}
```
运行该程序后,会提示用户输入三个数,用户输入完毕后,程序会对三个数进行比较,并将它们从大到小输出。注意,程序中使用了一个临时变量temp来进行交换,从而实现对三个数的排序。
### 回答2:
要用C语言编写程序,并使用指针来实现从大到小输出三个数。可以按照以下步骤进行编写:
1. 首先,声明三个整数变量a、b和c,以及一个整数指针变量ptr。
2. 使用scanf函数让用户输入三个数,分别赋值给a、b和c。
3. 使用指针将a、b和c的地址保存在ptr中,可以使用&操作符来获取变量的地址。
4. 使用指针来比较三个数的大小。首先,比较a和b的大小,如果a小于b,则交换它们的值,否则不做任何操作。然后,比较a和c的大小,如果a小于c,则交换它们的值,否则不做任何操作。最后,比较b和c的大小,如果b小于c,则交换它们的值,否则不做任何操作。这样,最大的数会被放在a中,中间的数会被放在b中,最小的数会被放在c中。
5. 使用指针来输出排序后的三个数。可以使用printf函数来输出变量的值,通过解引用指针来获取变量的值即可。
下面是一段示例代码:
```c
#include <stdio.h>
int main() {
int a, b, c;
int *ptr;
printf("请输入三个数:\n");
scanf("%d %d %d", &a, &b, &c);
ptr = &a;
if (*ptr < b) {
*ptr ^= b;
b ^= *ptr;
*ptr ^= b;
}
if (*ptr < c) {
*ptr ^= c;
c ^= *ptr;
*ptr ^= c;
}
ptr = &b;
if (*ptr < c) {
*ptr ^= c;
c ^= *ptr;
*ptr ^= c;
}
printf("排序后的数为:\n");
printf("%d %d %d\n", a, b, c);
return 0;
}
```
以上代码使用指针来实现了从大到小输出三个数的功能。首先,使用指针把a的地址保存在ptr中,然后通过指针比较大小并交换值,最后再使用指针输出排序后的三个数。
### 回答3:
下面是使用C语言编写的程序,以指针实现从大到小排序并输出三个输入的数字:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c);
void swap(int *x, int *y);
int main() {
int a, b, c;
printf("请输入三个数:");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("\n从大到小的顺序为:%d %d %d\n", a, b, c);
return 0;
}
void sort(int *a, int *b, int *c) {
if (*a < *b) {
swap(a, b);
}
if (*a < *c) {
swap(a, c);
}
if (*b < *c) {
swap(b, c);
}
}
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
```
这个程序首先会要求输入三个数,然后通过调用sort函数使用指针进行比较和交换操作,以实现从大到小的排序。最后将排序后的结果打印输出。
希望对你有帮助。
阅读全文