program to find the second largest word in a paragraph
amongst all words that repeat more thn twice
Answers were Sorted based on User's Feedback
Answer / kiran kumar
Hi Pavani,
My name is Kiran.
Iam posting the code for ur Question.
The code is given below.
/* Program to find the second larges word in a paragraph
amongst all words that repeat more than twice */
# include <stdio.h>
# include <stdlib.h>
int main(void)
{
char para[80],*temp1=NULL,*temp=NULL,*first_high,*second_high;
unsigned int first_high_len,second_high_len;
printf("Enter the Paragraph\n");
fgets(para,80,stdin);
temp=strchr((const char*) para, (int)' ');
temp=para;
temp=strchr((const char*)para,(int)' '); /* Assuming
first word as the first highest
word
and storing word and the number of
letters of that word */
first_high_len=temp-para;
first_high=malloc(first_high_len+1);
strncpy(first_high, (const char*) para, first_high_len);
*(first_high+first_high_len)='\0';
temp1=strchr((const char*)temp+1,(int)' '); /* Assuming
second word as the second highest
word
and storing the word and the number of
letters of that word */
second_high_len=temp1-temp-1;
second_high=malloc(second_high_len+1);
strncpy(second_high, (const char*) temp+1, second_high_len);
*(second_high+second_high_len)='\0';
while(1)
{
temp1=strchr((const char*)temp+1,(int)' ');
if(temp1 == NULL)
break;
if(temp1-temp-1 > first_high_len)
{
free(second_high);
second_high=malloc(first_high_len+1);
second_high_len=first_high_len;
strncpy(second_high, (const char*) first_high,
second_high_len);
*(second_high+second_high_len)='\0';
free(first_high);
first_high=malloc(temp1-temp);
first_high_len=temp1-temp-1;
strncpy(first_high, (const char*) temp+1, first_high_len);
*(first_high+first_high_len)='\0';
}
else if(second_high_len < (temp1-temp-1) && first_high_len
!= (temp1-temp-1))
{
free(second_high);
second_high=malloc(temp1-temp);
second_high_len=temp1-temp-1;
strncpy(second_high, (const char*) temp1+1, second_high_len);
*(second_high+second_high_len)='\0';
}
temp=temp1;
}
if(strlen((const char*)temp+1) > first_high_len)
{
free(second_high);
second_high=first_high;
first_high=temp+1;
}
else if(strlen((const char*)temp+1) > second_high_len &&
strlen((const char*)temp+1) != first_high_len)
{
free(second_high);
second_high=temp+1;
}
printf("\nFirst Highest word = %s , Len =
%d",first_high,first_high_len);
printf("\nSecond Highest word = %s , Len = %d",second_high,
second_high_len);
return 0;
}
Check this code if u have any queries please be free
to ask any queries.
Email : kirjony@gmail.com
| Is This Answer Correct ? | 7 Yes | 2 No |
Answer / marimuthu
By simple
1.find length of each word
2.insert into binary search tree
3.recursively get the left most child of the right sub tree. finally you will get the second largest word.
via this logic you can smallest word,largest word.
is it have criticize?? mail me rainpearls.v@gmail.com
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / sai
lets write a paragraph in an array of strings a[i]
compare that array string
and if exists more than twice in that paragraph strcpy it
with other string b and the next one with string c
if strlen of b<c print b, else c
i got an idea but cant write code
if anyone tries n suceeds/finds fault mail me!
Email ID: smaransaisree@gmail.com
| Is This Answer Correct ? | 1 Yes | 1 No |
What is structure and union in c?
Write an algorithm for implementing insertion and deletion operations in a singly linked list using arrays ?
# define x=1+4; main() { int x; printf("%d%d",x/2,x/4); }
The purpose of this exercise is to benchmark file writing and reading speed. This exercise is divided into two parts. a). Write a file character by character such that the total file size becomes approximately >10K. After writing close the file handler, open a new stream and read the file character by character. Record both times. Execute this exercise at least 4 times b). Create a buffer capable of storing 100 characters. Now after generating the characters, first store them in the buffer. Once the buffer is filled up, store all the elements in the file. Repeat the process until the total file size becomes approximately >10K.While reading read a while line, store it in buffer and once buffer gets filled up, display the whole buffer. Repeat the exercise at least 4 times with different size of buffer (50, 100, 150 …). Records the times. c). Do an analysis of the differences in times and submit it in class.
Explain how do you override a defined macro?
f(char *p) { p=(char *)malloc(sizeof(6)); strcpy(p,"HELLO"); } main() { char *p="BYE"; f(p) printf("%s",p); } what is the output?
9 Answers Hughes, Tech Mahindra,
What is the output of below code? main() { static int a=5; printf("%3d",a--); if(a) main(); }
write a statement to display all the elements array M(in reverse order? int M[8]={20,21,22,23,24,25,26,27};
Q.1 write aprogram to stack using linklist o insert 40 items? Q.2 write a program to implement circular queue with help of linklist?
write a program in c language to print your bio-data on the screen by using functions.
Can a binary search tree be used as an index? If yes, how? Explain
write a c program to print "Welcome" without using semicolon in the whole program ??