View Code of Problem 114

#include <stdio.h>
#include <string.h> 
int main()
{
	char a[200];
	while(gets(a)!=NULL)       //用scanf(“%s”,a)是错的
	{
		int i,j,k;
		for(i=0;i<strlen(a);i++)
		{
			k=0;            //用k记录每个单词的长度,注意赋初值位置
		    if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
			{
			   for(j=i;j<strlen(a);j++)
			   {
				 if(a[j]>='a'&&a[j]<='z'||a[j]>='A'&&a[j]<='Z')  k++;
				 else break;
		       }
			   for(j=i+k-1;j>=i;j--)    // 这里注意j=i+k-1;k一定要减一
			  {
			    printf("%c",a[j]);	
			  }	
			  i=i+k-1;   //注意这里i的取值
		    }
		    else 
			    printf("%c",a[i]);     //空格直接输出
//这种if else的控制字符思想要加强,自己很难一次编出来
		}
		printf("\n");
	}
	return 0;	
}

Double click to view unformatted code.


Back to problem 114