c语言 用两种指针方法完成:输入a和b两个整数,按从大到小顺序输出
时间: 2023-11-27 07:51:41 浏览: 148
第一种指针方法:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
if (a < b) {
swap(&a, &b);
}
printf("%d %d\n", a, b);
return 0;
}
```
第二种指针方法:
```c
#include <stdio.h>
int main() {
int a, b, *p1, *p2;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
p1 = &a;
p2 = &b;
if (*p1 < *p2) {
int *temp = p1;
p1 = p2;
p2 = temp;
}
printf("%d %d\n", *p1, *p2);
return 0;
}
```
以上两种方法都是通过比较两个指针所指向的变量的值,然后进行交换,最后输出从大到小的顺序。
相关问题
C语言,输入三个整数,按由小到大的顺序输出(用指针和非指针两种方式完成)
使用指针实现:
```c
#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;
}
```
使用非指针实现:
```c
#include <stdio.h>
void sort(int a, int b, int c, int *small, int *medium, int *big){
if(a > b){
if(b > c){
*small = c;
*medium = b;
*big = a;
}else{
if(a > c){
*small = b;
*medium = c;
*big = a;
}else{
*small = b;
*medium = a;
*big = c;
}
}
}else{
if(a > c){
*small = c;
*medium = a;
*big = b;
}else{
if(b > c){
*small = a;
*medium = c;
*big = b;
}else{
*small = a;
*medium = b;
*big = c;
}
}
}
}
int main(){
int a, b, c;
int small, medium, big;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
sort(a, b, c, &small, &medium, &big);
printf("%d %d %d\n", small, medium, big);
return 0;
}
```
通过c语言使用指针实现:输入6个整数,将这6个数按逆时针顺序转动一次后再输出。
下面是使用指针实现题目要求的C语言代码:
```c
#include <stdio.h>
void rotate(int *arr, int size) {
int temp = arr[0];
for (int i = 0; i < size - 1; i++) {
arr[i] = arr[i + 1];
}
arr[size - 1] = temp;
}
int main() {
int arr[6];
printf("请输入6个整数:\n");
for (int i = 0; i < 6; i++) {
scanf("%d", &arr[i]);
}
rotate(arr, 6);
printf("逆时针旋转一次后的结果是:\n");
for (int i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
首先,我们定义了一个 `rotate` 函数,它接受一个整数数组和数组大小作为参数。该函数的作用是将数组中的元素逆时针旋转一次。
在 `main` 函数中,我们首先声明一个大小为6的整数数组,并提示用户输入6个整数。然后,我们使用一个循环将用户输入的6个整数存储到数组中。
接下来,我们调用 `rotate` 函数,将数组中的元素逆时针旋转一次。
最后,我们再使用一个循环输出旋转后的结果。
需要注意的是,在 `rotate` 函数中,我们使用了指针来访问数组中的元素。具体来说,我们使用 `arr[i]` 和 `*(arr + i)` 两种方式访问数组中的第i个元素。这两种方式是等价的,因为 `arr[i]` 实际上是 `*(arr + i)` 的简写形式。
阅读全文