烦恼的小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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。