|
发表于 2014-1-25 22:22:31
|
显示全部楼层
这是当初我学小强那本书的一道题,看看吧
#include<stdio.h>
int i,j,n=0,m=0,max,x1=0,y1=0;
char str1[1000][1000],aa[10000];
int str2[1000];
int main()
{
printf("输入字符以空格结尾\n非字母算作空格\n");
gets(aa);
for( i=0;(aa[i])!='\0';i++)
{
if(((aa[i]>=1)&&(aa[i]<=64))
||((aa[i]>=91)&&(aa[i]<96))
||((aa[i]>=123)&&(aa[i]<=255)))
{
if(i==0) goto jump;//首字符为空格跳出
if(((aa[i-1]>=65)&&(aa[i-1]<=90))
||((aa[i-1]>=97)&&(aa[i-1]<=122)))//连续按空格无效
{
if(n>=max)
{
max=n;//单词最大长度
}
n=0;m++;
}
}
jump: ;
if(((aa[i]>=65)&&(aa[i]<=90))
||((aa[i]>=97)&&(aa[i]<=122)))
{
str1[m][n]=aa[i]; //将单词赋给新数组
n++; //没按下一个非空格加一
str2[m]=n; //定义新数组储存每个单词长度
}
}
for(j=0; j<m; j++)
{ if(str2[j]==max)//找到第几个单词长度=最长
printf("最长单词\t%s\n长度\t%d\n位置:第%d个\n\n",
str1[j],max,j+1);
}
} |
|