C语言10个数最小数放第一位,最大数放最后一位

C语言10个数最小数放第一位,最大数放最后一位输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1,输入10个数;2,进行处理;3,输... C语言10个数最小数放第一位,最大数放最后一位输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1,输入10个数;2,进行处理;3,输出10个数。用指针。 求我写的这个代码问题在哪?

#include<stdio.h>
int f1(int *p1)
{
int i=0;
for(;i<10;i++,p1++)
scanf("%d",p1);
}
int f2(int *p2)
{
int min,max,i=1,t;
for(;i<10;i++)
{
min=*p2;max=*p2;
if(min>*(p2+i)) {t=min;min=*(p2+i);*(p2+i)=t;}
if(max<*(p2+i)) {t=max;max=*(p2+i);*(p2+i)=t;}
}
t=min;min=*p2;*p2=t;
t=max;max=*(p2+9);*(p2+9)=t;
}
int f3(int *p3)
{
int i=0;
for(;i<10;i++,p3++)
printf("%5d",*p3);
}
main()
{
int a[10],*p;
p=a;
f1(p);
f2(p);
f3(p);
}
展开
 我来答
紫薇参星
科技发烧友

2018-06-28 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3504万
展开全部

把min=*p2;max=*p2;这两句从f2函数中的for-i循环中移动到for-i循环前面,(因为这两句是初始化min和max变量,所以应该放在for-i循环前面.)主要就改这一处,就行了.

完整的最大值最小值排序的C语言程序如下(改动的地方见注释)

#include<stdio.h>

void f1(int *p1)  //这里int f1(int *p1)改成 void f1(int *p1)因为没有返回值

{

 int i=0;

 for(;i<10;i++,p1++)

  scanf("%d",p1);



void f2(int *p2)  //这里int f2(int *p2)改成 void f2(int *p2)因为没有返回值

{

 int min,max,i=1,t;

 min=*p2;max=*p2;//这里 这两句从for-i循环中移到这里,因为是初始化min和max

 for(;i<10;i++)  

 {

  if(min>*(p2+i)) {t=min;min=*(p2+i);*(p2+i)=t;}

  if(max<*(p2+i)) {t=max;max=*(p2+i);*(p2+i)=t;}

 }

 t=min;min=*p2;*p2=t;

 t=max;max=*(p2+9);*(p2+9)=t;

}

void f3(int *p3)  //这里int f3(int *p3)改成 void f3(int *p3)因为没有返回值

{

 int i=0;

 for(;i<10;i++,p3++)

  printf("%5d",*p3);

}

int main()  //这里主函数加返回值

{

 int a[10],*p;

 p=a;

 f1(p);

 f2(p);

 f3(p);

 return 0;//这里返回0表示运行成功

}

更多追问追答
追问

这是什么原因呐
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式