主题:一道简单的菜鸟编程题
xuji19891014
[专家分:0] 发布于 2008-04-26 00:09:00
有十个数进行排序,把倒数第三个数排在第一位
回复列表 (共8个回复)
沙发
苹果。。。。 [专家分:170] 发布于 2008-04-26 01:22:00
把你写的代码贴出来吧~大家帮你找出你的问题所在
板凳
xuji19891014 [专家分:0] 发布于 2008-04-26 11:05:00
#include <stdio.h>
void main()
{
int a[10]={45,56,25,23,21,64,75,15,28,93};
int i,j,k,l;
printf("the old numbers are:\n");
for(i=0;i<=9;i++)
printf("\n the sorted numbers are: \n");
for(j=0;j<=9;j++)
for(i=0;i<=9-j;i++)
if(a[i>a[i+1])
{k=a[i];a[i]=a[i+!];a[i+!]=k;}
printf("\n the sorted numbers are :\n");
l=a[9];
a[9]=a[7];
a[7]=l;
for(i=0;i<=9;i++)
printf("%d",a[i]);
}
各位大虾,这是我编地,感觉有很多错误,请指教!
3 楼
xuji19891014 [专家分:0] 发布于 2008-04-26 11:07:00
题目有点问题,是把第三大地数排在第一位
4 楼
苹果。。。。 [专家分:170] 发布于 2008-04-26 20:07:00
你可以先把它按从小到大或从大到小排列,然后在把第3个和第一个的位置换一下就可以拉~
5 楼
果菜的爱 [专家分:60] 发布于 2008-05-23 00:02:00
我没装C 下面是一个C++的
# include <iostream>
# define N 10
double a[]={2.1,3.7,3.5,2.9,2.7,2.3,3.3,2.5,3.1,3.9};
using namespace std;
class QuickSort
{
int low,high;
public:
QuickSort(int ,int);
void qkSort();
int part();
void prnt();
};
QuickSort::QuickSort(int l,int h)
{
low=l;
high=h;
}
int QuickSort::part()
{
int i,j;
float p;
i=low,j=high;
p=a[low];
while (i<j)
{
while(i<j && a[j]>=p)
{ j--;}
a[i]=a[j];
while(i<j && a[i]<=p)
{ i++;}
a[j]=a[i];
}
a[i]=p;
return(i);
}
void QuickSort::qkSort()
{
int i;
int ih, il;
if(low<high)
{
i=part();
ih = high;
il = low;
high=i-1;
qkSort();
high = ih;
low=i+1;
qkSort();
low = il;
}
else
return;
}
void QuickSort::prnt()
{
cout<<"\n sorted sequence is:\n";
for(int i=0;i<=N-1;i++)
cout<<a[i]<<endl;
}
void main()
{
int m=0,n=N-1;
QuickSort qs (m,n);
qs.qkSort();
qs.prnt();
}
6 楼
baibaiten [专家分:0] 发布于 2008-05-24 18:54:00
#include <iostream>
using namespace std;
int main()
{int i,j,k,t,a[10];
for(i=0;i<=9;i++)
cin>>a[i];
for(i=0;i<=8;i++)
for(j=0;j<=8-i;j++)
if(a[j]>a[j+1]) {k=a[j];a[j]=a[j+1];a[j+1]=k;}
t=a[0];a[0]=a[7];a[7]=t;
for(i=0;i<=9;i++)
cout<<a[i]<<" ";
return 0;}
7 楼
姚姚的梦 [专家分:160] 发布于 2008-06-14 11:04:00
这是我改进的
你原来的没多大错就是太粗心了
你好好找找有两个同样的低级错误
要认真噢
#include <stdio.h>
void main()
{
int a[10]={45,56,25,23,21,64,75,15,28,93};
int i,j,k,l;
//printf("the old numbers are:\n");
//for(i=0;i<=9;i++)
//printf("\n the sorted numbers are: \n");
for(j=0;j<=9;j++)
for(i=0;i<=9-j;i++)
if(a[i]>a[i+1])
{k=a[i];a[i]=a[i+1];a[i+1]=k;}
printf("\n the sorted numbers are :\n");
l=a[9];
a[9]=a[7];
a[7]=l;
for(i=0;i<=9;i++)
printf("%d\n",a[i]);
}
另外你的题目意思是把倒数第三个数放在第一位(已经实现了) 那题目怎么又讲十个数排序(我没理解是什么意思)
8 楼
elliotann [专家分:100] 发布于 2008-06-16 23:30:00
#include <iostream.h>
int main()
{
int a[10]={12,67,98,32,43,28,29,24,94,59};
int w,i;
for(i=0;i<10;i++)
for(int j=9;j>=i+1;j--)
if(a[j]<a[j-1])
{
w=a[j];
a[j]=a[j-1];
a[j-1]=w;
}
w=a[9];
a[9]=a[7];
a[7]=w;
for(i=0;i<10;i++)
{
cout<<a[i]<<' ';
}
return 0;
}
我来回复