请教一道简单的C语言题目,求大神解答

描述给定一个整数序列a1,a2,...,an,请您判断是否为有序序列:-如果序列是严格递减序列(即ai>ai+1,i=1,2,...,n-1),输出-1-如果序列是严格递... 描述

给定一个整数序列a1,a2,...,an,请您判断是否为有序序列:
-如果序列是严格递减序列(即ai>ai+1,i=1, 2, ..., n-1),输出-1
-如果序列是严格递增序列(即ai<ai+1,i=1, 2, ..., n-1),输出1
-如果是非有序序列,则输出0

输入

输入数据有多组,第一行为一个正整数T,表示数据组数,接下来有T行。
每行的第一个数为一个正整数n(2<=n<=1000),后面有n个整数,每个数之间由空格分隔。

输出

输出有T行,每行内容为一个整数,值为-1、1或者0。

样例输入
6
5 9 5 4 2 1
6 1 3 2 5 4 7
8 1 2 3 4 5 6 7 8
7 7 6 5 4 3 2 1
3 1 3 2
2 1 2

样例输出
-1
0
1
-1
0
1

我写的程序:
#include <stdio.h>

int main()
{ int i,n,t,k,num[1000];
while(scanf("%d",&t)!=EOF)
{ for(i=0;i<=1000;i++)

for(i=1;i<=t;i++)
{ scanf("%d",&n);
for(k=0;k<n;k++)
scanf("%d",&num[k]);
k=0;
if(n==2)
{if(num[k+1]>num[k])
printf("1\n");
else
printf("-1\n");
continue;
}
while(num[k+1]-num[k]>0)
{ k++;
if(num[k+1]-num[k]<0)
{printf("0\n");
break;
}
if(k==n-2)
{printf("1\n");
break;
}

}
k=0;
while(num[k+1]-num[k]<0)
{ k++;
if(num[k+1]-num[k]>0)
{printf("0\n");
break;
}
if(k==n-2)
{printf("-1\n");
break;
}
}
}
}
return 0;
}

在在线评测系统中提示我Wrong Answer at Test 2,用样例测试的时候都是完全正确的啊,求大神解答
展开
 我来答
Venyo
2013-05-14
知道答主
回答量:15
采纳率:0%
帮助的人:6.8万
展开全部
你没考虑到相邻两个数相等你情况。你看样例第四组数开头有两个7,输出是-1,说明严格递增是a[i+1]>=a[i],严格递减是a[i]>=a[i+1]。
追问
你理解错了,每行的第一个数字是该行数字的个数,也就是说第四行的第一个7表示的是这一行后面有7个数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MarsCode
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、... 点击进入详情页
本回答由MarsCode提供
只因一帖
2013-05-14 · TA获得超过1233个赞
知道答主
回答量:316
采纳率:0%
帮助的人:85.2万
展开全部
代码编译能通过,但算法有问题,无限输入,没有结束标志。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanxinyanglove
2013-05-15
知道答主
回答量:13
采纳率:0%
帮助的人:1.9万
展开全部
程序不符合要求,算法正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式