一个acm的系统测试题。。。第一次用这个系统,,怎么提交也不对啊。
输入N个数据,然后将这N个数据反向输出在一行中(系统测试题)Input第一行一个整数N行二行N个数据Output反向输出N个数据于一行中SampleInput3123Sa...
输入N个数据, 然后将这N个数据反向输出在一行中(系统测试题)
Input
第一行一个整数N
行二行N个数据
Output
反向输出N个数据于一行中
Sample Input
3
1 2 3
Sample Output
3 2 1
我的代码。。。
tc下正确,为啥它老报wrong error
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p;
int n;
int i;
int temp;
while(scanf("%d",&n)!=EOF) if(n>0) break;
p=(int *)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<n/2;i++)
{
temp=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=temp;
}
for(i=0;i<n;i++)
printf("%d ",*(p+i));
free(p);
p=NULL;
} 展开
Input
第一行一个整数N
行二行N个数据
Output
反向输出N个数据于一行中
Sample Input
3
1 2 3
Sample Output
3 2 1
我的代码。。。
tc下正确,为啥它老报wrong error
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p;
int n;
int i;
int temp;
while(scanf("%d",&n)!=EOF) if(n>0) break;
p=(int *)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<n/2;i++)
{
temp=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=temp;
}
for(i=0;i<n;i++)
printf("%d ",*(p+i));
free(p);
p=NULL;
} 展开
2个回答
展开全部
输入,输出等一定要一模一样才能通过,即使只差一个空格,一个换行,也是Wrong answer
它是要求测试一组数据还是很多组?
而且你的算法也有问题,可能会超过memory和time,这个用栈来解决是最合适不过了
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p,*base;
int n;;
scanf("%d",&n);//测试,不需要判断异常输入
p=base=(int *)calloc(n,sizeof(int));
for(;p<base+n;p++)
scanf("%d",p);
for(;p>=base;p--)
printf("%d ",*p);
free(p);
}
它是要求测试一组数据还是很多组?
而且你的算法也有问题,可能会超过memory和time,这个用栈来解决是最合适不过了
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p,*base;
int n;;
scanf("%d",&n);//测试,不需要判断异常输入
p=base=(int *)calloc(n,sizeof(int));
for(;p<base+n;p++)
scanf("%d",p);
for(;p>=base;p--)
printf("%d ",*p);
free(p);
}
追问
...这个是栈啊,我还没学数据结构。。。果然厉害
貌似在 scanf("%d",p);
for(;p>=base;p--)
之间要加个p--;然后后面加个p++;
不过还是wrong answer。。。都按照它的输出了,空格都一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询