| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:把 10个 整数的 中的 最小位和 第1位互换
只看楼主 加入收藏
honghong88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-16
结帖率:50%
收藏
已结贴  问题点数:1 回复次数:4 
把 10个 整数的 中的 最小位和 第1位互换

#include<iostream>
using namespace std;
#include<string >

int main()

{
void compare (int * );
void print (int *);
int  a[10],i,j;
cout<<"input";
for(i=0;i<10;i++)
cin>>a[i];

compare(a);
print(a);




}



void compare(int *a  )
{
int *p=0;
int i, k,m  ;
  p=a;
for(i=1;i<10;i++)
{if( *p > *(a+i)  )
{*p = *(a+i);
k=i;
}}
m=*a;

*a=*(a+k);
*(a+k)=m;



}


void print ( int *a  )
{int i;
for(i=0;i<10;i++)
  cout<<*(a+i)<<" ";
}

把 10个 整数的 中的 最小位和 第1位互换
 用这指针互换不了不知道什么啊

搜索更多相关主题的帖子: compare include 
2011-11-13 22:00
dhyco
Rank: 2
等 级:论坛游民
帖 子:9
专家分:32
注 册:2011-3-29
收藏
得分:0 
void compare(int *a  )
{
int *p=0;
int i, k,m  ;
  p=a;
for(i=1;i<10;i++)
{if( *p > *(a+i)  )
{*p = *(a+i);
//改为:
p =a+i;
k=i;
}}
m=*a;

*a=*(a+k);
*(a+k)=m;
2011-11-14 15:05
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:0 
回复 楼主 honghong88
还是没法互换哦!
2011-11-14 19:28
pjfjx1234
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-2
收藏
得分:0 
#include<iostream>
using namespace std;
#include<string >

int main()

{
void compare (int * );
void print (int *);
int  a[10],i,j;
cout<<"input";
for(i=0;i<10;i++)
cin>>a[i];

compare(a);
print(a);




}



void compare(int *a  )
{
int *p=(int *)malloc(sizeof(int));
int i, k,m  ;
  *p=*a;
for(i=0;i<10;i++)
{if( *p > *(a+i)  )
{*p = *(a+i);
k=i;
}}
m=*a;

*a=*(a+k);
*(a+k)=m;



}


void print ( int *a  )
{int i;
for(i=0;i<10;i++)
  cout<<*(a+i)<<" ";
}
2011-11-14 23:35
hxcet
Rank: 4
等 级:业余侠客
帖 子:78
专家分:229
注 册:2011-11-15
收藏
得分:0 
回复 楼主 honghong88
试试这个吧。。。
#include<iostream>
using namespace std;
void compare(int *);
void print(int *);
int main()
{
int a[10],i;
cout<<"请输入10个整数: "<<endl;
for(i=0;i!=10;i++)
cin>>a[i];
compare(a);
print(a);
return 0;
}

void compare(int* a)
{
int* p=a;
int i,j,m,k=0;
for(i=1;i!=10;i++)
{ if(*p>=*(a+i)) {p=(a+i);k=i;} }
m=*a;
*a=*(a+k);
*(a+k)=m;
for(j=1;j!=10;j++)
if(*(a+j)==*a) *(a+j)=*(a+k);
}

void print(int* a)
{
int i;
cout<<"执行comepare后: ";
for(i=0;i!=10;i++)
  cout<<*(a+i)<<" ";
cout<<endl;
}
2011-11-18 11:41
快速回复:把 10个 整数的 中的 最小位和 第1位互换
数据加载中...
 
   



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

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