| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 994 人关注过本帖
标题:[求助]最小的放第一个,最大的放最后一个(用指针)
只看楼主 加入收藏
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
 问题点数:0 回复次数:9 
[求助]最小的放第一个,最大的放最后一个(用指针)

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。

这个题我用数组可以写出来,可要求用指针,我一用指针就乱了,哪位能写个程序来看看,谢谢了

[此贴子已经被作者于2006-9-2 12:42:15编辑过]

搜索更多相关主题的帖子: 指针 
2006-09-02 12:41
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

您自己先写,哪里不懂再问...
哪怕你不用指针写也行,写了毕竟是锻炼了。


对不礼貌的女生收钱......
2006-09-02 12:50
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 

因为写得太乱,发帖时没好意思发,呵呵,这是第二个函数,因为第一个和第三个比较简单

void sort(int array[10])
{
int *max,*min,*p;
max=min=array;
for(p=array;p<array+9;p++)
if(*p>=*max)
max=p;array[9]=*max;*p=array[9];
for(p=array;p<array+9;p++)
if(*p<=*min)
min=p;array[0]=*min;*p=array[0];

}

[此贴子已经被作者于2006-9-2 13:44:53编辑过]


只剩一年了………… 够了!
2006-09-02 13:43
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

void swap(int *a ,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int array[])
{
int *max,*min,*p;
max=min=array;

for(p=array+1;p<array+10;p++)
{
if(*p>*max)
max=p;
if(*p<*min)
min=p;
}
swap(min,array);
swap(max,array+9);
}
刚看小说去了,呵呵。
您这指针用得有些乱了.{}少了,没事又交换数组那么多次...


对不礼貌的女生收钱......
2006-09-02 14:25
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 

嗨,你的程序看起来清楚多了,我怎么就没想到呢,呵呵

学习了,多谢,


只剩一年了………… 够了!
2006-09-02 15:17
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>
#define N 50
void Input(int *a,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",a+i);
}
}

void tiaohuan(int *a,int n)
{
int max=0,min=0,i,temp;

for(i=1;i<n;i++)
{
if(*(a+i)>*(a+max))
{
max=i;
}
if(*(a+i)<*(a+min))
{
min=i;
}
}
temp=*(a+min);
*(a+min)=*a;
*a=temp;
temp=*(a+max);
*(a+max)=*(a+n-1);
*(a+n-1)=temp;
}

void display(int *a,int n)
{
int i;

for(i=0;i<n;i++)
{
printf("%-3d",*(a+i));
}
printf("\n");
}

int main()
{
int data[N],n;
printf("输入元素个数,不超过%d:",N);
scanf("%d",&n);
printf("输入%d个元素:",n);
Input(data,n);
tiaohuan(data,n);
printf("输出处理后的%d个元素:",n);
display(data,n);
return(0);
}



倚天照海花无数,流水高山心自知。
2006-09-02 19:41
jxw221
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-25
收藏
得分:0 
#include "stdio.h"
main()
{
int a[10];
int i;
int min,max;
printf("array A:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];



for(i=1;i<10;i++)
{
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
a[0]=min;
a[9]=max;

printf("array A:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
}
2006-09-03 03:51
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-09-03 09:12
ajey2004
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2004-12-30
收藏
得分:0 

先用数组写,再改成指针比较容易


2006-09-03 20:07
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 
以下是引用ajey2004在2006-9-3 20:07:07的发言:

先用数组写,再改成指针比较容易

呵呵,那写出来还有什么意思,又不是为了完成作业,

不是说指针是C语言中最重要的部分吗?

直接想出来爽一点呀,


只剩一年了………… 够了!
2006-09-03 21:46
快速回复:[求助]最小的放第一个,最大的放最后一个(用指针)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016038 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved