赞
踩
Cpp
【问题描述】
输入一个由若干个以空格分隔的单词组成的英文文章,求文章中最短的单词(文章以英文句点”.”结束,且字符数不超过200).
【输入格式】
一行,表示输入的英文文章。
【输出格式】
一行,表示最短单词
【输入样例】
We are Oiers.
【输出样例】
We
【数据范围】
英文文章字符数不超过200
非常非常简单,既然单词都是用空格隔开,那么就可以直接循环输入了。
框架
int main(){
return 0;
}
循环输入
#include<cstdio> //scanf()
char a[256];
int main(){
while(true){
scanf("%s", &a);
}
return 0;
}
判断长度并赋值。
因为要保证第一次可以赋新值,所以先将数组改变大小。
#include<cstdio> //scanf()
#include<cstring> //memset(), strlen(), strcpy()
char a[256], b[256];
int main(){
memset(b, 1, sizeof(b));
while(true){
scanf("%s", &a);
if(strlen(b)>strlen(a)){
strcpy(a, b);
}
}
return 0;
}
如果发现了句点就退出循环,并输出。
#include<cstdio> //scanf(), printf() #include<cstring> //memset(), strlen(), strcpy() char a[256], b[256]; int main(){ memset(b, 1, sizeof(b)); while(true){ scanf("%s", &a); if(a[strlen(a)-1]=='.'){ a[strlen(a)-1]='\0'; if(strlen(b)>strlen(a)){ strcpy(b, a); } break; } if(strlen(b)>strlen(a)){ strcpy(a, b); } } printf("%s", a); return 0; }
#include<cstdio> #include<cstring> char a[256], b[256]; int main(){ memset(b, 1, sizeof(b)); while(true){ scanf("%s", &a); if(a[strlen(a)-1]=='.'){ a[strlen(a)-1]='\0'; if(strlen(b)>strlen(a)){ strcpy(b, a); } break; } if(strlen(b)>strlen(a)){ strcpy(a, b); } } printf("%s", a); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。