被这个问题难住了,老谭书上的习题来着,程序运行未输出结果就意外停止了。
题目是:写一个函数,输入一行字幅,将此字符串中最长的单词输出。我按我的思路写出来了,但是运行的时候window7总会跳出来说,xx.exe已经停止工作,各位高手说说是什么原因?还有,我总觉得我写的代码过于冗长,似乎应该还有更简单的方法,各位也介绍一下吧?
以下是我的代码:
程序代码:
#include"stdio.h" #include"stdlib.h" int main() { char str[100]; int a,b,i,j,m,n,max[100],num[100],big[100],huge; gets(str); n=strlen(str); while(i<n) { if(str[i]!=32) num[j]=m; else { num[j+1]=m; } m=m+1; i=i+1; j=j+2; } for(j=0;j<n;) { max[i]=num[j+1]-num[j]; big[i]=max[i]; i=i+1; j=j+2; } for(i=0;i<n;i++) { if(max[i]>huge) { huge=max[i]; } } for(i=0;i<n;i++) { if(big[i]==huge) break; } a=i+huge; for(b=i;b<a;b++) { printf("%c",str[b]); } system("pause"); }