主题:关于数组排序问题
1+1=3
[专家分:0] 发布于 2011-09-11 00:13:00
#include<iostream>
using namespace std;
int data[10];
void main()
{
int m;
cout<<"请输入十个个整数:";
for(m=0;m<10;m++)
cin>>data[m];
int j=0;
for(int i=1;i<10;i++)
if(data[i]<data[j])
j=i;
if(j>0){
int k=data[0];
data[0]=data[j];
data[j]=k;
}
for(j=0;j<10;j++)
cout<<data[j];
}
在我电脑上运行的时候一直说在}前面缺少;我感觉我编的可能思路不对,或者有什么错误,呵呵,我是个新手,希望能帮我看下,或者帮我改进下程序,谢谢了。
回复列表 (共5个回复)
沙发
1+1=3 [专家分:0] 发布于 2011-09-11 00:28:00
忘记说题目了,就是输入10个整数到一个数组,使得其中最小的一个数成为数组的首元素。
板凳
457636876 [专家分:0] 发布于 2011-09-11 17:52:00
欢迎加QQ群来 欢迎大家 提问
QQ群:C C++ linux 软件基地① 64222213 满
QQ群:C C++ linux 软件基地② 93623167 没满
QQ群:C C++ linux 软件基地③ 167881329 满
QQ群:C C++ linux 软件基地④ 174551731 高级群(没满)
3 楼
椿尘楠子 [专家分:50] 发布于 2011-09-12 19:51:00
你的排序算法有问题
你可以试试下面的代码
#include<iostream>
using namespace std;
int data[10];
void main()
{
int i,j,k,m;
cout<<"请输入十个个整数:\n";
for(m=0;m<10;m++)
cin>>data[m];
for(j=0,i=1;j<9;i++)
{
if(data[j]>data[i])
{
k=data[j];
data[j]=data[i];
data[i]=k;
}
if(i==9){ j++;i=j;}
}
cout<<endl;
for(k=0;k<10;k++)
cout<<data[k]<<" ";
}
4 楼
bofengqiye [专家分:0] 发布于 2011-09-17 21:02:00
#include <iostream>
using namespace std;
void swap(int& a,int& b );
const int maxnum=10;
int main()
{ int i ,a[maxnum] ,min;
cout<<"please enter the num:\n" ;
for(i=0;i<maxnum ;i++)
cin>>a[i];
min=0;
for (i=0; i<maxnum;i++)
{
if (a[i]<a[min])
min=i;
}
swap(a[min],a[0]);
for (i=0;i<maxnum;i++)
cout<<a[i]<<endl;
return 1;
}
void swap(int& a,int& b)
{
int temp;
temp=a;
a=b;
b=temp;
}
5 楼
cyan_cong [专家分:0] 发布于 2011-09-28 18:24:00
#include<iostream>
int main()
{
using namespace std;
int data[10];
int m;
cout << "请输入十个个整数:" << endl;
for(m=0;m<10;m++)
cin>>data[m];
int temp=data[0];
int n=0;
for(int i=1;i<10;i++)
if(temp>data[i])
{
temp=data[i];
n=i;
}
temp=data[n];
data[n]=data[0];
data[0]=temp;
for(int j=0;j<10;j++)
cout << data[j] << " ";
cout << endl;
}
我来回复