题目大意
题目原文:http://uva.onlinejudge.org/external/117/11764.pdf
背景:
玛莉欧(Mario)在最后的城堡。他现在需要跳过一些墙壁,然后进入库巴(Koopa)的房间,他要打败怪物,以拯救公主。对于这个问题,我们只关注 “翻过墙”的一部分。你将被给予N个墙壁(由左至右)的高度。玛莉欧(Mario)目前站在第一个墙壁。他必须跳到相邻的墙壁直到最后一个。这意味着,他将跳跃 N - 1 次。a high jump 代表玛莉欧(Mario)跳到一个较高的墙,同样,a low jump代表玛莉欧(Mario)跳到一个较矮的墙。你能找出 a high jump 和 a low jump 的总数吗?
输入
第一行输入的是一个整数T(T < 30),表示接下来有T笔测资。每笔测资开始于一个正整数 N(N < 50),表示墙壁的数目。下一行依序为 N 个墙壁的高度(由左至右)。每一个高度是不超过10的非负整数。
输出
对每笔测资先输出这是第几笔测资,接下来两个数代表 high jumps 和 low jumps 的总数。
格式请参考范例测资 。
Sample Input Output for Sample Input
3 8 1 4 2 2 3 5 3 4 1 9 5 1 2 3 4 5 <!--[if !supportEmptyParas]--> <!--[endif]--> |
Case 1: 4 2 Case 2: 0 0 Case 3: 4 0 |
算法:
很简单的题目自己看代码。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
#include<stdio.h> int main(void) { int h[50]; int i,hj,lj,t,n,count=1; scanf("%d",&t); while(t--) { hj=0;lj=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&h[i]); for(i=0;i<n-1;i++) { if(h[i+1]>h[i]) hj++; else if(h[i+1]<h[i]) lj++; } printf("Case %d: %d %d\n",count++,hj,lj); } }