C语言用指针编程实现输入三个整数输出其中的最大值
时间: 2023-07-16 11:16:40 浏览: 102
可以使用指针来实现输入三个整数并输出其中的最大值,具体代码如下:
```c
#include <stdio.h>
int main() {
int a, b, c;
int *p1 = &a, *p2 = &b, *p3 = &c;
printf("请输入三个整数:\n");
scanf("%d%d%d", p1, p2, p3);
int max = *p1;
if (*p2 > max) {
max = *p2;
}
if (*p3 > max) {
max = *p3;
}
printf("最大值为:%d\n", max);
return 0;
}
```
上述代码中定义了三个整型变量 `a`、`b`、`c`,以及三个指向这些变量的指针 `p1`、`p2`、`p3`。利用 `scanf` 函数从标准输入中读取三个整数,并通过指针将这三个整数存储到相应的变量中。
接着,使用一个整型变量 `max` 来记录当前的最大值,初始值为第一个整数。然后使用 `if` 语句依次判断第二个和第三个整数是否比当前最大值大,如果是,则更新 `max` 的值。
最后,使用 `printf` 函数输出最大值即可。
相关问题
用C语言输入n个整数链式存放并输出最大值
链表是一种动态数据结构,可以根据数据的增减自动扩展或缩小空间。以下是用C语言实现输入n个整数链式存放并输出最大值的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct ListNode {
int val;
struct ListNode* next;
};
int main() {
int n, num;
scanf("%d", &n); // 输入链表节点个数
struct ListNode* head = NULL; // 定义链表头指针
struct ListNode* tail = NULL; // 定义链表尾指针
// 循环输入n个整数
for (int i = 0; i < n; i++) {
scanf("%d", &num);
// 创建新的节点并赋值
struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = num;
node->next = NULL;
// 如果链表为空,设置头指针和尾指针为该节点
if (head == NULL) {
head = node;
tail = node;
} else {
// 否则将该节点添加到链表末尾
tail->next = node;
tail = node;
}
}
// 查找链表中的最大值并输出
int max_val = head->val;
struct ListNode* p = head->next;
while (p != NULL) {
if (p->val > max_val) {
max_val = p->val;
}
p = p->next;
}
printf("%d", max_val);
// 释放链表内存
struct ListNode* q = head;
while (q != NULL) {
head = q;
q = q->next;
free(head); // 释放节点内存
}
return 0;
}
```
在输入n个整数后,程序会创建一个空链表。然后循环输入n个整数,并将它们分别存储在链表节点中。最后,程序会遍历链表查找其中的最大值,并输出该值。
为了释放动态分配的空间,程序还需要循环遍历链表并释放各个节点的内存。
C语言用指针法实现3个数求最大值
可以使用指针法来实现3个数求最大值,代码如下:
```c
#include <stdio.h>
int main() {
int a, b, c, max;
int *p1, *p2, *p3;
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
p1 = &a;
p2 = &b;
p3 = &c;
max = *p1;
if (*p2 > max) {
max = *p2;
}
if (*p3 > max) {
max = *p3;
}
printf("三个数中的最大值为:%d\n", max);
return 0;
}
```
我们定义了三个整数变量 `a`、`b`、`c` 和三个指针变量 `p1`、`p2`、`p3`,分别指向这三个整数变量。然后使用指针法来找出三个数中的最大值,最后输出结果。