标签:
题目1185:特殊排序如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。
冒泡排序的做法
#include<stdio.h>
void Bubblesort(int *a,int n)
{
int swap;
for(int i=1;i<=n-1;i++)
{
for(int j=n-1;j>=i;j--)
{
if(a[j]>a[j+1])
{
swap=a[j+1];
a[j+1]=a[j];
a[j]=swap;
}
}
}
}
int main()
{
int n;
int num[1001];
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
if(n==1)
{
printf("%d\n-1\n",num[1]);
continue;
}
Bubblesort(num,n);
printf("%d\n",num[n]);
for(int i=1;i<=n-2;i++)
printf("%d ",num[i]);
printf("%d\n",num[n-1]);
}
}
/**************************************************************
Problem: 1185
User: paomolvcha1
Language: C
Result: Accepted
Time:80 ms
Memory:912 kb
****************************************************************/
使用C语言标准库的快速排序qsort的方法
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int n;
int num[1001];
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
if(n==1)
{
printf("%d\n-1\n",num[1]);
continue;
}
qsort(num+1,n,sizeof(num[1]),cmp);
printf("%d\n",num[n]);
for(int i=1;i<=n-2;i++)
printf("%d ",num[i]);
printf("%d\n",num[n-1]);
}
}
/**************************************************************
Problem: 1185
User: paomolvcha1
Language: C
Result: Accepted
Time:30 ms
Memory:912 kb
****************************************************************/
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
int buff[1024];
while(~scanf("%d",&n))
{
//input
for(int i=0;i<n;i++)
scanf("%d",&buff[i]);
//n=1
if(n==1)
{
printf("%d\n-1\n",buff[0]);
continue;
}
//n>=2
sort(buff,buff+n);
for(int i=0;i<n-2;i++)
printf("%d ",buff[i]);
printf("%d\n",buff[n-2]);
}
return 0;
}
/**************************************************************
Problem: 1185
User: paomolvcha1
Language: C++
Result: Wrong Answer
****************************************************************/标签:
原文地址:http://blog.csdn.net/u013011841/article/details/43776785