一、题目要求:
二、思路:
1.建立循环,string s输入
2.判断s是否为"0"
2.1是:数字型加一
2.2不是:用atoi函数将s转为int a
2.2.1 a不为0:数字型加一,把a加到sum里去
2.2.2 a为0:说明s是字母或者字符,对s取ASCII码(s[0]强转为int),65-90为大写,97- 122为小写,else是字符
3.依次输出各种类型的数量,换行
4.判断sum是否为0,不为0则再输出一行sum
三、代码:
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int main(){
int n=0,sum=0,cap=0,low=0,dig=0,cha=0;
string s="0";
cin>>n;
for(int i=0;i<n;i++){
cin>>s;
int a=atoi(s.c_str());
if(s=="0")dig++;
else{
if(a!=0){
sum=sum+a;
dig++;
}
else{
int b=s[0];
if(b>=65&&b<=90) cap++;
else if(b>=97&&b<=122) low++;
else cha++;
}
}
}
cout<<cap<<" "<<low<<" "<<dig<<" "<<cha<<endl;
if(sum!=0)cout<<sum;
}