C语言之统计天数

题目描述

炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。

经历千辛万苦,他收集了连续  天的最高气温数据。

现在,他想知道最高气温一直上升的最长连续天数。

输入格式

第 1 行:一个整数  。

第 2 行:个空格隔开的整数,表示连续  天的最高气温。 最高气温  。

输出格式

1 行:一个整数,表示最高气温一直上升的最长连续天数。

输入

10
1 2 3 2 4 5 6 8 5 9

输出

5

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	int a,b;
	int count=0;
	
	int maxcount=1; 
	scanf("%d",&a);//先输入一个数据进行预读取。
	for(i=1;i<n;i++){
		scanf("%d",&b);
		if(a<b){
			count++;
			if(count>maxcount){//用于处理题目要求的上升最长连续天数
				maxcount=count;
			}
		}else{ //如果前面有中断,则进行连续天数的初始化,重新计算连续天数。
		    count=1;
		} 
		a=b;//重新进行计算连续天数的时候,初始值也应该初始化,从中断的那个值开始重新计算。
	}
	printf("%d",maxcount);
	return 0;
}

问题一:

我总是看题目不仔细,所以我一开始写的代码没有考虑连续天数要求的是最长天数,总以为是最后一次计算的连续天数,没有定义maxcount,这肯定不对。 

问题二:

我最初写的代码没有进行预读取,而是初始化最初为0,肯定不如这样预读取好。直接进行条件判断。

特别注意易错点:1.中断连续天数计算时,不仅需要天数初始化,还需要条件判断的a初始化,再进行条件判断,不能再以之前的1作为初始进行判断。

2.a=b的位置和maxcount的位置。

posted @ 2025-12-16 13:15  代码无bug抓狂者  阅读(5)  评论(0)    收藏  举报