. (单选题) 输入三个整数,按由小到大的顺序输出。 (1)不使用指针。 (2)使用指针。 请分别实现上述2个程序
时间: 2023-08-31 10:30:33 浏览: 63
Java输入三个整数并把他们由小到大输出(x,y,z)
5星 · 资源好评率100%
### 回答1:
不使用指针的程序实现:
```c
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a > b) {
int tmp = a;
a = b;
b = tmp;
}
if (a > c) {
int tmp = a;
a = c;
c = tmp;
}
if (b > c) {
int tmp = b;
b = c;
c = tmp;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
```
使用指针的程序实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a > b) swap(&a, &b);
if (a > c) swap(&a, &c);
if (b > c) swap(&b, &c);
printf("%d %d %d\n", a, b, c);
return 0;
}
```
### 回答2:
(1)不使用指针的程序实现:
```c
#include <stdio.h>
void sortThreeNums(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;
}
printf("%d %d %d\n", a, b, c);
}
int main(){
int num1, num2, num3;
printf("请输入三个整数:");
scanf("%d %d %d", &num1, &num2, &num3);
sortThreeNums(num1, num2, num3);
return 0;
}
```
(2)使用指针的程序实现:
```c
#include <stdio.h>
void sortThreeNums(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 num1, num2, num3;
printf("请输入三个整数:");
scanf("%d %d %d", &num1, &num2, &num3);
sortThreeNums(&num1, &num2, &num3);
printf("%d %d %d\n", num1, num2, num3);
return 0;
}
```
以上两个程序均是通过比较交换的方式实现三个整数的排序。在第一个程序中,直接通过变量的方式交换数值;在第二个程序中,通过传递指针的方式,交换数值的同时也改变了原变量的数值。最终,按由小到大的顺序输出三个整数。
### 回答3:
(1)不使用指针:
我们可以使用if语句和嵌套if语句来实现不使用指针的程序。假设输入的三个整数分别为a、b、c。
首先,我们可以使用if语句来比较a和b的大小。如果a大于b,则交换a和b的值,使得a始终小于等于b。
然后,我们可以再次使用if语句来比较b和c的大小。如果b大于c,则交换b和c的值,使得b始终小于等于c。
最后,我们可以按照从小到大的顺序输出a、b和c。
具体的实现代码如下:
```
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "请输入三个整数:";
cin >> a >> b >> c;
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
cout << "按由小到大的顺序输出为:" << a << " " << b << " " << c << endl;
return 0;
}
```
这样,我们就可以通过不使用指针的方式按由小到大的顺序输出三个整数。
(2)使用指针:
相比于不使用指针的方式,使用指针可以减少交换值的次数,并且代码更加简洁。具体的实现如下:
```
#include <iostream>
using namespace std;
void swap(int* x, int* y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a, b, c;
cout << "请输入三个整数:";
cin >> a >> b >> c;
if (a > b) {
swap(&a, &b);
}
if (b > c) {
swap(&b, &c);
}
cout << "按由小到大的顺序输出为:" << a << " " << b << " " << c << endl;
return 0;
}
```
通过使用指针,并调用swap函数进行值的交换,我们同样可以按照由小到大的顺序输出三个整数。
阅读全文