主题:[讨论]输入10个数后怎么排序请指教
okayguang
[专家分:0] 发布于 2008-03-04 17:46:00
我看了个题目,定义一个数组a[10],输入10个数到a[10]中,然后把a[0]送入max中,从a[1]到a[9]逐个与max中的内容比较,若比max的值大,则把该下标变量送入max中。我想做到对输入的10个数再进行排序,升序或降序都可以,不知道怎么加入代码来实现,请高手指教,谢谢了~~~
main()
{
int i,max,a[10];
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max) max=a[i];
printf("maxmum=%d\n",max);
}
回复列表 (共3个回复)
沙发
okayguang [专家分:0] 发布于 2008-03-05 10:56:00
哈哈,终于摸出来了,书上介绍的起泡法改动了下就ok啦~~
main()
{
int i,j,t,max,a[10];
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)max=a[i];
printf("maxnum=%d \n",max);
for(i=0;i<10;i++)
for(j=i;j<10;j++)
if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
板凳
xiehui006 [专家分:0] 发布于 2008-03-19 14:06:00
看看这样吧
#include<iostream>
include<iomanip>
using namespace std;
void print(int a[],int n);
void sort(int a[],int n);//声明两个函数一个是用来输出数组另一个是用来从小排列
void main(){
const int max=15; //设定这个数组的最大下标;
int i,n;
int a[max]; //定义一个数组\
do{
cout<<"输入一个小于15的数组下标"<<endl;
cin>>n;
}while(!(n>=1&&n<=max));//输入的N值不能少于1不能大于15
cout<<"输入你要排序的数为"<<endl;
for(i=0;i<n;i++){
cin>>a[i];}//把每个数赋值给数组
cout<<"比较前的数组"<<;
print(a,n);
sort(a,n);
cout<<"比较后的数组<<;
print(a,n);
}
void sort(int a[],int n){
int i,j,temp;
fot(i=0,in-1;i++){
for(j=i+1;j<n;j++){
if(a[j]<a[i]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void print(int a[],int n){
for(i=0;i<n;i++){
cout<<setw(5)<<a[i];
cout<<endl;
}
3 楼
6429685 [专家分:190] 发布于 2008-03-21 21:41:00
起泡法,选择法都可以哈。。。。。
我来回复