烦恼的小J
时间: 1ms 内存:128M
描述:
小J自从学了C语言之后非常苦恼,他总是写不对程序,经常遇到各种问题。他有一个梦想,就是写出来的程序都可以 0 error(s), 0 warning(s) 。
在奔向梦想的路途中,他遇到了这样一个问题:
有一个整数型数组,随机输入n(0<n<=20)个元素,输出从小到大排序后的结果。
但是呢,小O的程序出现了问题,他绞尽脑汁也无法解决,你可以帮助他吗?
#include<stdio.h> int main() { int data[20]; int n; int i,j; int buf; ////////////////////////////////////start scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",data[i]); } for (i=0,i<n-1;i++) { for (j=0;j<n-1-i,j++) { if (data[j]<data[j+1]) { buf = data[j]; data[j] = data[j+1]; data[j+1] = buf; } } } ////////////////////////////////////end for(i=0;i<n;i++) { printf("%d ",data[i]); } return 0; }
输入:
n
n个整数
输出:
从小到大排序后的结果
示例输入:
20
2 1 3 4 7 9 6 5 8 0 13 11 12 15 16 14 17 18 19 10
示例输出:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
提示:
参考答案(内存最优[1120]):
#include<stdio.h>
int main()
{
int data[20];
int n;
int i,j;
int buf;
////////////////////////////////////start
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if (data[j]>data[j+1])
{
buf = data[j];
data[j] = data[j+1];
data[j+1] = buf;
}
}
}
////////////////////////////////////end
for(i=0;i<n;i++)
{
printf("%d ",data[i]);
}
return 0;
}
参考答案(时间最优[1]):
#include<stdio.h>
int main()
{
int data[20];
int n;
int i,j;
int buf;
////////////////////////////////////start
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if (data[j]>data[j+1])
{
buf = data[j];
data[j] = data[j+1];
data[j+1] = buf;
}
}
}
////////////////////////////////////end
for(i=0;i<n;i++)
{
printf("%d ",data[i]);
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。