文章

67

粉丝

207

获赞

29

访问

36.4k

头像
统计单词 题解:易错点
P1394 华中科技大学
发布于2024年1月17日 22:13
阅读数 834

#include<iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main(){
char a[10000];
char c[10000];
int b[10000];
int cc=0;
while(1){
cc=0;
for(int i=0;i<10000;i++){//初始化(也可以 while(gets(c)))
b[i]=0;
a[i]=0;
c[i]=0;
}
gets(c);
for(int i=0;i<strlen(c);i++)
{
if(c[i]!='.')
a[i]=c[i];
else{
a[i]=c[i];
break;
}
}	
if(c[0]==0)
break;
for(int i=0;i<strlen(a);)
{   
if(a[i]=='.')
break;
else if(a[i]!=' '){
b[cc]=b[cc]+1;
i++;
}
else if(a[i]==' '){
cc++;
i++;
while(a[i]==' ')
i++;
}
}
for(int i=0;i<=cc;i++){
if(b[i]==0)
break;
if(i==cc)
cout << b[i] ;
else 
cout << b[i]<<' ' ;
}
}
	system("pause");
	return 0;
}

1. 句号后就结束了  例如 sdsdsd sdsdds.dsdds  句号后面就不算了

2. 句号后面的如果有很多空格也不能算 (我一直通过率在80就是因为这个)例如 sdds sdsd       .

3.多组数据,可以用while(1) 后面再break 因为是字符串 如果输入的是数字就必须用while(cin >> c) 因为输入一个非数字的就是跳出循环的条件(保险期间还是用while(gets(c)),我这里没改

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发