I_love_%username%

I_love_%username%

题目链接

I_love_%username%

题意

Vasya很喜欢一个coder,他喜欢看那个coder的节目,那个coder每次编程可以得到一个非负分数(不超过10000),而有两种情况能使Vasya惊讶: ·coder得到的分数完全大于过去的分数; ·coder得到的分数完全小于过去的分数。 注意:第一次得到的分数不会使人惊讶。 给定coder编程次数n,给定每次编程得到的分数,请你求出Vasya的惊讶次数。
> 简单来说就是:输入一个数,让其为这个数组中元素的个数,接着输入这个数组,除第一个数以外(因为第一个数作为初始数),去找远大于或远小于前一个数的数。然后计算有几次。

思路

  1. 首先要定义数与数组便于储存,再定义一个计数器sum并赋初值=0,定义最大值max=0,min=10010;for循环输入数组。
  2. if条件判断,要分两种情况(=1或!=1)
  3. 赋值和计数

坑点

  1. 要分两种情况(=1和!=1)
  2. if语句的嵌套使用,第二个if语句是最小值与最大值的判断与赋值

算法一:for循环语句和if条件判断

时间复杂度
  • 输出大小: 1.83238887786865 MiB
  • 编译时间: 0.44s
实现步骤
  1. 定义数与数组,计数器,最大值,最小值,for循环输入数组。
  2. if条件语句判断(分=1与!=1两种情况)
  3. if语句的嵌套(最大值与最小值的判断与赋值)
代码
 #include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
	int n,sum=0;//sum为计数器 
	cin>>n;
	int a[n],max=0,min=10010;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		if(i==1)
		{
			max=a[1];
			min=a[1];
			continue;
		}
		if(i>1)
		{
			if(a[i]>max)
			{
				max=a[i];
				sum++;
		    }
		    if(a[i]<min)
		    {
		    	min=a[i];
		    	sum++;
			}
		}
	}
	cout<<sum;
	return 0;
}

总结

有一点坑点,但是不难,挺简单的。for循环+if语句的嵌套。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值