View Code of Problem 114

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int swap(int m,int n,char s[])
{
	int i;
	char temp;
	for(i=0;i<(n-m+1)/2;i++)
	{
	temp=s[i+m];
	s[i+m]=s[n-i];
	s[n-i]=temp;
	}
return 0;
}
int main()
{int i,k,a[1000],n,flag;
char c[1000],s,temp,num=0;
while(gets(c)!=NULL)
{n=strlen(c);
memset(a,0,sizeof(a));
k=1;flag=0;
a[0]=0;
for(i=1;i<n;i++)
{if(c[i]==' ')
{
	a[k++]=i;
	flag=1;
}}
if(!flag){  
flag=0;
  for(num=0;num<n;num++)
  if(!isalpha(c[num]))
    flag=1;
if(flag==0)     
swap(0,n-1,c);
}
else
{
  flag=0;
  for(num=0;num<a[1];num++)
  if(!isalpha(c[num]))
    flag=1;
if(flag==0)     
swap(0,a[1]-1,c);
flag=0;
for(i=2;i<k;i++){
        for(num=a[i-1]+1;num<a[i];num++)
           if(!isalpha(c[num]))
           flag=1;
          if(flag==0)
           swap(a[i-1]+1,a[i]-1,c);
          flag=0;
}
  for(num=a[k-1]+1;num<n;num++)
           if(!isalpha(c[num]))
           flag=1;
if(flag==0)
swap(a[k-1]+1,n-1,c);
 
}
printf("%s\n",c);
}
return 0;
 
}

Double click to view unformatted code.


Back to problem 114