用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求用函数实现将10个数中最大的数与第一个
用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求用函数实现将10个数中最大的数与第一个输入的数交换,将十个数中最小的数与最后一个输入的数交换。哪位大神能用指针...
用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求用函数实现将10个数中最大的数与第一个输入的数交换,将十个数中最小的数与最后一个输入的数交换。
哪位大神能用指针解决?帮个忙 展开
哪位大神能用指针解决?帮个忙 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
2个回答
展开全部
#include <stdio.h>
void swap(int *a,int *b)
{
int tmp;
tmp=*b;*b=*a;*a=tmp;
}
void swapmaxmin(int *a,int n)
{
int i;
int *max,*min;
max=min=a;
for(i=0;i<n;i++)
{
if(*(a+i)>*max) max=a+i;
if(*(a+i)<*min) min=a+i;
}
swap(max,a+n-1);
swap(min,a);
}
int main()
{
int i,a[10];
for(i=0;i<10;i++)
scanf("%d",a+i);
swapmaxmin(a,10);
for(i=0;i<10;i++)
printf("%d\t",*(a+i));
printf("\n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void changePos(int *a)
{
int i=0,Maxa=0,Mxp=0,tmp=0;
for (i=0;i<10;i++)
{
if (i==0)
{
Maxa = *a;
Mxp = i;
}else
{
if (Maxa<*a+i)
{
Maxa = *a+i;
Mxp = i;
}
}
}
tmp=*a;
*a = *(a+Mxp);
*(a+Mxp)= tmp;
}
main()
{
int i=0,a[10]={0};
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
changePos(&a);
for (i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
1 2 3 4 5 6 7 8 9 10
10 2 3 4 5 6 7 8 9 1 Press any key to continue
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询