#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10];//定义一个数组用于存储数字
int *p = NULL;//定义一个指针
p = a;//将数字的地址赋给指针
int i;//定义循环变量
int min,max = 0;//定义最大值最小值并初始化
int min_index = 0,max_index = 0;//定义最大值最小值下标并初始化
int t;//定义中间变量
printf("请输入10个数字:\n");
for(i = 0;i < 10;i++)//输入10个数字保存在数组中,并输出
{
scanf("%d",(p + i));
printf("%d\t",*(p + i));
}
printf("\n");
for(i = 0;i < 10;i++)//找出最大值最小值,并且找出最值下标
{
if(min > *(p + i))
{
min = *(p + i);
min_index = i;
}
if(max < *(p + i))
{
max = *(p + i);
max_index = i;
}
}
printf("最小值是:%d,最大值是:%d\n",min,max);
printf("最小值下标是:%d,最大值下标是:%d\n",min_index,max_index);
//将最小值与数组首元素交换,最大值与数组末元素交换
if(*p != min)
{
t = *p;
*p = *(p + min_index);
*(p + min_index) = t;
}
if(*p != max)
{
t = *p;
*p = *(p + max_index);
*(p + max_index) = t;
}
for(i = 0;i < 10;i++)//打印转换后的数组
{
printf("%d\t",*(p + i));
}
return 0;
}
详细解决方案
指针入门:输入 10 个整数,将其中最小的数与第一个数对换,把最大的数与最后一数对换。
热度:96 发布时间:2024-02-06 14:21:36.0
相关解决方案