蓝桥杯冲冲!!!! 计蒜客总结

EOF的巧用     

EOF自身特点 一直读 读到文件尾 如 what a nice day   读到空格时就会再进行一次 while循环  ,然后 又输入了一遍 会覆盖之前的输入 所以到最后只会剩下 day 

 

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	char c[10005];
	int a;
	while(scanf("%s",&c) != EOF); // 很关键  读文件尾

	a = strlen(c);

	cout << a;
	return 0; 
 } 

  关于字符 数字的用法 char c; c = ‘0’; 不等于 int a = 0;  两者的ASCII码不同要想直接使用需要 - '0';

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char c[10004];
	cin >> c;
	int a = strlen(c);
	int b;
	double d;
	b = (c[a - 1] - '0') / 2; 
	d = (c[a - 1] - '0') / 2.0;    //要想得到的数后面 有小数 必须 除以2.0;
	if(d > b)
	cout << "NO";
	if(b == d)
	cout << "YES";
 } 

  记住 A的 ASCII码为 65 ,a的为97 两者相差 32。 然后做判断时为了让前后不相互影响要加入continue;或者引入else

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[100];
	int i;
	cin >> a;
	int b = strlen(a);
	for(i = 0; i <= b; i++)
	{
		if(a[i] >= 'a' && a[i] < 'z')
		{
		a[i] = char(a[i] - 31);
		}
		 else if(a[i] >= 'A' && a[i] < 'Z') //这个else 不能掉,和上面只能有一个执行
		{
		a[i] = char(a[i] + 33);
	} 
	if(a[i] == 'Z')
	{
	a[i] = 'A';
}
	if(a[i] == 'z')
	{
	a[i] = 'a';
    }
    if(a[i] >= '1' && a[i] <= '9')
    a[i] = a[i];
     
}
for(i = 0; i <= b; i++)
	cout << a[i];
} 

strcpy可以覆盖之前原字符数组的输入

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int n;
	int num;
	int max = 0;
	cin >> n;
	char c[100],s[100];
	for(int i = 0; i < n; i++)
	{
		cin >> c;
		num = strlen(c);
		if(max <= num)
		{
			max = num;
			strcpy(s,c);
		}
	}
	cout << s;
}

一年中节假日的总数 很难!!! 仔细 复习还有万能公式 

#include<iostream>
using namespace std;
int mm[10] = {1,5,10,10,10,12};
int dd[10] = {1,1,1,2,3,25};
int day[13] ={0,31,28,31,30,31,30,31,31,30,31,30,31};
void nextday(int& y,int& m,int& d)
{
	d++;
	if(d == day[m] + 1)//if里只能用== 
	{
	 d = 1;
	 m++;	
	}
}
int main()
{
int y,w,m,d,sf,ans;
cin >> y;
for(int i = 6; i <=9 ; i++)
{
	cin >> mm[i] >> dd[i];
}
cin >> w;     //今天是星期几
if((y % 100 != 0 && y % 4 == 0) || y % 400 == 0)
{
	day[2]++;
}
m = 1; //m是今天是几月
d = 1; //d是今天是几号
sf = 0;
ans = 0;
while (m < 13)
{
	if(m == mm[6] && d == dd[6])
	{
		ans++;
		sf = 2;
	}
	else if(sf)
	{
		ans++;
		sf--;
	}
	else if(w == 6 || w == 7)
	{
		ans++;
	}
	else
	{
	for(int i = 0; i < 10; i++)
	{
	if(m == mm[i] && d == dd[i])
	{

	ans++;
	break;
}
    }
}
	
		nextday(y,m,d);
		w++;
		if(w == 8)
		w = 1;
		
		
	}
	 cout << ans;
 return 0;
 } 


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值