内存:128  时间:1

题目描述

机械实验班有个同学叫小泉,有一天数学老师给小泉布置了一道个人作业,给小泉M(M<=100)组数据,每组数据有N个正整数(N<=100)让他把每组的N个数按升序排成一行,但由于数的数目比较多,人工做很费时,于是小泉就想到了喜欢编程序的你,请你帮他解决这个问题,可不要让他失望噢。

#include<stdio.h>

#include<string.h>

int main()

{

    int m,n,i,j,k,t;

    int *p;

    int a[100];

    scanf("%d%d",&m,&n);

    for(i=1; i<=m; i++)

    {

        for(j=0; j<n; j++)

        {

            scanf("%d",&a[j]);

        }

        p=a;

        for(j=0; j<n-1; j++)

        {

            for(k=j+1; k<n; k++)

            {

                /*******************************

                 请在该部分补充缺少的代码

                 ********************************/

            }

            for(j=0; j<n; j++)

            {

                if(j==0)

                    printf("%d",*(p+j));

                else

                    printf(" %d",*(p+j));

            }

            printf("
");

        }

        return 0;

    }

输入

输入包括M+1行,第一行是两个正整数M、N;M表示总共多少组数据,下面M行每行包含N个正整数。(输入数据之间会用空格隔开)

输出

输出包括M行,每行分别对应输入中M组数据的升序序列,数与数之间用一个空格隔开。

样例输入

2 3
1 3 2
4 2 6

样例输出

1 2 3
2 4 6

提示

提交时只提交补全代码

代码如下

#include<stdio.h>
#include<string.h>
int main()
{
int m,n,i,j,k,t;
int *p;
int a[50];
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[j]);
}
p=a;
for(j=0;j<n-1;j++)
{
for(k=j+1;k<n;k++)
{
/**************Ôڴ˲¹È«´úÂë***********************/
if(*(p+k)<*(p+j))
                {
                    t=*(p+k);
                    *(p+k)=*(p+j);
                    *(p+j)=t;
                }
/**************************************************/
}
}
for(j=0;j<n;j++)
{
if(j==0)
printf("%d",*(p+j));
else
printf(" %d",*(p+j));
}
printf("
");
}
return 0;
}

代码来源于互联网,仅供参考!