功能:为一维数组输入10个整数;将其中最小的数与第一个数 对换,将最大的数与最后一个数对换,输出数组元

功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。---------------------------------... 功能:为一维数组输入10个整数;将其中最小的数与第一个数
对换,将最大的数与最后一个数对换,输出数组元素。

------------------------------------------------------*/
#include <stdio.h>
main()
{
int a[10];
void input();
void output();
void max_min();
input(a,10);
max_min(a,10);
output(a,10);
}

void input(int *arr,int n)
{
int *p,i;
p=arr;
printf("please enter 10 integers:\n");
for(i=0;i<n;i++)
/**********FOUND**********/
scanf("%d",p);
}

void max_min(int *arr,int n)
{
int *min,*max,*p,t;
min=max=arr;
for(p=arr+1;p<arr+n;p++)
/**********FOUND**********/
if(*p<*max)
max=p;
else if(*p<*min) min=p;
t=*arr;*arr=*min;*min=t;
/**********FOUND**********/
if(max=arr) max=min;
t=*(arr+n-1);
*(arr+n-1)=*max;
*max=t;
}

void output(int *arr,int n)
{
int *p,i;
p=arr;
printf("The changed array is:\n");
/**********FOUND**********/
while(i=0;i<n;i++)
printf("%3d",*p++);
printf("\n");
}
怎么改错?
展开
 我来答
陈佐锋3
2013-04-23
知道答主
回答量:7
采纳率:0%
帮助的人:9816
展开全部
scanf("%d",p★++); 或 scanf("%d",arr[i]); 或 scanf("%d",p+i); 或 scanf("%d",arr+i);
2). if(*p>*max) 或 if(*max<*p)
3). if(★max★==★arr★)
4). for(i=0;i<n;i++) 或 for(i=0;n>i;i++) 或 for(p=arr;p<arr+n;) 或 for(i=0;i<=n-1;i++) 或 for(i=0;n-1>=i;i++) 或 for(p=arr;p<=arr+n-1;) 或 for(p=arr;arr+n-1>=p;)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
answer19831020
2012-06-13 · 超过44用户采纳过TA的回答
知道答主
回答量:122
采纳率:100%
帮助的人:95.5万
展开全部
void max_min(int *arr,int n) while(i=0;i<n;i++) 好像都有点问题,恕我愚见,你好像是把数组元素个数和数组名没弄清楚把,在perl语言中数组名可以被认为是数组元素的个数,在C中感觉应该不是这样的吧, 即使改为 for(i=0;i<n;i++),gcc可以编译成功,但是输出的结果个人感觉像是地址而不是元素
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式