首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

堆瓷砖,代码哪里出错了?该怎么处理

2012-05-01 
堆瓷砖,代码哪里出错了?堆瓷砖Time Limit:1000MSMemory Limit:65536KTotal Submit:411 Accepted:231Descri

堆瓷砖,代码哪里出错了?
堆瓷砖

Time Limit:1000MS Memory Limit:65536K
Total Submit:411 Accepted:231

Description

上次来定制的客户买走了不少瓷砖,确实给公司带来了不少利润,可是望着裁剪下来的瓷砖,陈盖历发愁了。这些尺寸不一的瓷砖堆的满地都是。哎,还是想个办法把他们堆成堆吧。当然堆的时候最大的要放在下面,绝对不允许大的瓷砖放在小的上面,否则变形了下次就不好卖了。你能帮忙把这些瓷砖堆起来吗?

Input

第一行输入一个整数n,表示共要堆成的堆数。 
然后是n行,每行先输入1个整数m,表示这一堆有m块瓷砖,然后紧跟着输入m个整数,表示瓷砖的尺寸

Output

对于每一堆输出一行,分别是该堆的瓷砖尺寸,按照从大到小进行排列,2个数之间有一个空格

Sample Input


2
4 3 4 5 6
3 8 4 9
Sample Output


6 5 4 3
9 8 4
Hint

n m 不会超过50



我写的代码:
#include<stdio.h>
int main()
{
  int n,m,a[50];
  int i,j,p,q,temp;
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
  scanf("%d",&m);
  for(j=0;j<m;j++)
  {
  scanf("%d",&a[j]);
  }
  for(p=0;p<m;p++)
  {
  for(q=0;q<m-p;q++)
  {
  if(a[q]<a[q+1])
  {
  temp=a[q];
  a[q]=a[q+1];
  a[q+1]=temp;
  }
  }
  }
  for(j=0;j<m;j++)
  {
  printf("%d ",a[j]);
  }
  printf("\n");
  }
  return 0;
}

[解决办法]
提交是报什么错?

C/C++ code
    for(p=0;p<m;p++)        {            for(q=0;q<m-p-1;q++) //这里改成 m-p-1,如果不改P=0里,p+1会溢出。。            {                if(a[q]<a[q+1])                {                    temp=a[q];                    a[q]=a[q+1];                    a[q+1]=temp;                }            }        } 

热点排行