黑马程序员技术交流社区
标题:
我这个代码错在哪里
[打印本页]
作者:
人生充满期待
时间:
2015-4-28 17:23
标题:
我这个代码错在哪里
#include <stdio.h>
//在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词
int main()
{
char str[]="heima wo mashang lai le";
//定义数组来存放字符串
int max=0;
//定义max为最长单词的个数
char *p;
char *p2;
int i=0;
//定义当前字符下标
while(str[i]!='\0')
//遍历当前字符串
{
int n=0;
//定义当前单词长度,碰到空格重新归0
while (str[i] != ' ' && str[i] != '\0')
{
n++;
p=&str[i];
}
if (max < n)
{
max = n;
p2=p;
}
//如果当前单词长度大于max,就把当前长度值n赋值给max,并且记录当前最长单词的首尾字母下标
i++;
}
//最长的单词字符个数即为max
printf("最长的单词是:");
for(int m = 0; m < max ;m++)
//用for循环输出最长单词的每个字符
{
printf("%c",*(p2+m));
}
printf("\n");
return 0;
}
作者:
人生充满期待
时间:
2015-4-28 17:24
#include <stdio.h>
//在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词
int main()
{
char str[]="heima wo mashang lai le";
//定义数组来存放字符串
int max=0;
//定义max为最长单词的个数
char *p;
char *p2;
int i=0;
//定义当前字符下标
while(str[i]!='\0')
//遍历当前字符串
{
int n=0;
//定义当前单词长度,碰到空格重新归0
while (str[i] != ' ' && str[i] != '\0')
{
n++;
p=&str[i];
}
if (max < n)
{
max = n;
p2=p;
}
//如果当前单词长度大于max,就把当前长度值n赋值给max,并且记录当前最长单词的首尾字母下标
i++;
}
//最长的单词字符个数即为max
printf("最长的单词是:");
for(int m = 0; m < max ;m++)
//用for循环输出最长单词的每个字符
{
printf("%c",*(p2+m));
}
printf("\n");
return 0;
}
复制代码
作者:
!陈超
时间:
2015-4-28 21:33
//定义当前单词长度,碰到空格重新归0
while (str[i] != ' ' && str[i] != '\0')
{
n++;
printf("%d\n", n); // 加上这句你就知道了,死循环
p=&str[i];
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2