C语言用指针编程实现输入三个整数输出其中的最大值
时间: 2023-07-16 10:16:40 浏览: 165
可以使用指针来实现输入三个整数并输出其中的最大值,具体代码如下:
```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语言编程:(用指针编程)输入10个整数,将其中最小的一个数与第一个数对换,把最大的数与最后一个数对换。
好的,以下是用指针编写的C语言程序,实现输入10个整数,将最小的数与第一个数对换,将最大的数与最后一个数对换:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int nums[10];
int *min = &nums[0];
int *max = &nums[0];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
if (nums[i] < *min) {
min = &nums[i];
}
if (nums[i] > *max) {
max = &nums[i];
}
}
swap(&nums[0], min);
swap(max, &nums[9]);
printf("结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
解释一下程序的主要思路:
1. 定义一个包含10个整数的数组`nums`,以及两个指针`min`和`max`,初始时指向数组的第一个元素`nums[0]`。
2. 通过循环,依次读取用户输入的10个整数,并判断是否为最小值或最大值,如果是则将指针`min`或`max`指向该元素。
3. 通过`swap`函数,交换数组的第一个元素和最小值元素,以及最后一个元素和最大值元素。
4. 最后输出交换后的结果。
希望能够帮到你!
用c语言编程实现输入8个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换(用指针完成)
可以这样实现:#include <stdio.h>int main()
{
int array[8];
int *max, *min;
int i;
//输入8个整数
for(i=0; i<8; i++)
scanf("%d", &array[i]);
//找出最大值和最小值
max = min = &array[0];
for(i=1; i<8; i++)
{
if(*max < array[i])
max = &array[i];
if(*min > array[i])
min = &array[i];
}
//交换
int temp = array[0];
array[0] = *max;
*max = temp;
temp = array[7];
array[7] = *min;
*min = temp;
return 0;
}
阅读全文