一个容易的字符串类的题目
一个简单的字符串类的题目!
[2011 SE|CS]C Progamming Test 4-D: 求最长单词长度
Time Limit:1000MS Memory Limit:65536K
Total Submit:275 Accepted:165
Description
编写一个程序,求给定句子中的最长单词长度。单词之间用空格隔开,句子用’.’结束
Input
一个英文句子
Output
最长长度
Sample Input
I am a student.
Sample Output
7
这是我的:#include<stdio.h>
#include<string.h>
int main()
{
int i=0,l=0,max=0,t;
char a[100000];
do
{
l++;
scanf("%c",&a[l]);
}
while (a[l]!='.');
l--;
while (i<=l)
{
t=0;
while (i<=l&&a[i]!=' ')
{
i++;
t++;
}
if (t>max) max=t;
while (i<=l&&a[i]==' ') i++;
}
printf("%d",max);
return 0;
}
为啥老是Wrong answer。。。。。
------解决方案--------------------
lz的计数变量l不是从零开始而是从1开始的
l++;
scanf("%c",&a[l]);数组的a[]的初值是a[1],你的a[0]是没有赋值的,而你计数时是从0开始的
------解决方案--------------------
注意数组的第一个是a【0】
------解决方案--------------------
你的算法需要扫描两次数组,其实一次扫描就可以完成了:
1 #include <stdio.h>
2
3 int main()
4 {
5 char buf[1000];
6 int result_start = 0;
7 int result_len = 0;
8
9 int start = 0;
10 int len = 0;
11 int i = 0;
12 do
13 {
14 scanf("%c", &buf[i]);
15 if ('.' == buf[i])
16 {
17 if (len > result_len)
18 {
19 result_start = start;
20 result_len = len;
21 }
22
23 break;
24 }
25 else if (' ' == buf[i])
26 {
27 if (len > result_len)
28 {
29 result_start = start;
30 result_len = len;
31 }
32 start = i;
33 len = 0;
34 }
35 else
36 {
37 len ++;
38 }
[2011 SE|CS]C Progamming Test 4-D: 求最长单词长度
Time Limit:1000MS Memory Limit:65536K
Total Submit:275 Accepted:165
Description
编写一个程序,求给定句子中的最长单词长度。单词之间用空格隔开,句子用’.’结束
Input
一个英文句子
Output
最长长度
Sample Input
I am a student.
Sample Output
7
这是我的:#include<stdio.h>
#include<string.h>
int main()
{
int i=0,l=0,max=0,t;
char a[100000];
do
{
l++;
scanf("%c",&a[l]);
}
while (a[l]!='.');
l--;
while (i<=l)
{
t=0;
while (i<=l&&a[i]!=' ')
{
i++;
t++;
}
if (t>max) max=t;
while (i<=l&&a[i]==' ') i++;
}
printf("%d",max);
return 0;
}
为啥老是Wrong answer。。。。。
------解决方案--------------------
lz的计数变量l不是从零开始而是从1开始的
l++;
scanf("%c",&a[l]);数组的a[]的初值是a[1],你的a[0]是没有赋值的,而你计数时是从0开始的
------解决方案--------------------
注意数组的第一个是a【0】
------解决方案--------------------
你的算法需要扫描两次数组,其实一次扫描就可以完成了:
1 #include <stdio.h>
2
3 int main()
4 {
5 char buf[1000];
6 int result_start = 0;
7 int result_len = 0;
8
9 int start = 0;
10 int len = 0;
11 int i = 0;
12 do
13 {
14 scanf("%c", &buf[i]);
15 if ('.' == buf[i])
16 {
17 if (len > result_len)
18 {
19 result_start = start;
20 result_len = len;
21 }
22
23 break;
24 }
25 else if (' ' == buf[i])
26 {
27 if (len > result_len)
28 {
29 result_start = start;
30 result_len = len;
31 }
32 start = i;
33 len = 0;
34 }
35 else
36 {
37 len ++;
38 }