关于一些初级ACM竞赛题目的分析和题解(十)
西面的题目是关于一些字母变换的,上题:
A. Word
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
第一行包含一个单词s - 由大写和小写拉丁字母组成,长度从1到100。
输出
打印纠正的单词s。 如果给定的单词s具有更多的大写字母,则将该单词写入大写寄存器中,否则 以小写字母写入。
题意即一行字符串若是大写字母数大于小写字母数则把这一行字符变为大写,反之,变为小写,下面是代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int l,c,b;
int main()
{
char a[300];
scanf("%s",a);
l=strlen(a);
for (int i=0;i<l;i++)
{
if(a[i]>=97)c++; //不同类型计数
else b++;
}
if (c>=b) // 比较大小写的字符数目
{
for (int j=0;j<l;j++)
if(a[j]<97)a[j]+=32; //执行
return 0*printf("%s",a);
}
if (c<b)
{
for (int j=0;j<l;j++)
if(a[j]>=97)a[j]-=32;
return 0*printf("%s",a); // 输出结果
}
}