Number of consonants

Light Poster
23May2011,22:58   #1
answerx's Avatar
Help me please! I want to make a program that displays the word with the maximum number of consonants from a sentence.
Mentor
24May2011,12:07   #2
xpi0t0s's Avatar
How far have you got and where are you stuck?
Can you create a program as a start that just displays individual words?
After that you can count the number of consonants in each word and store (a) the number if it's the largest so far and (b) the word itself.
At the end just display the word that you stored before.

Possible algorithm:
count=0; word=""
for each word
consonant count > count? yes: assign count and word
end for
display word.
Light Poster
24May2011,21:03   #3
answerx's Avatar
Here is a variant of my program, please help me find the mistake.

Code:
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include <string.h>


void main()
{char cons[21]={'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'};
char s[30],x[30][30],z[30]; int i,j=0,k=0,r,f,n,poz,c,max;
clrscr();
printf("Type sentence:");
gets(s);n=strlen(s);r=0;k=0;

for(i=0;i<n;i++){
if((s[i]!=' ')&&(s[i]!='.')){x[r][k]=s[i];k++;}
if((s[i]==' ')||(s[i]=='.')){x[r][k]='\0';r++;k=0;}}

for(i=0;i<r;i++)
for(j=0;j<strlen(x[i]);j++)
for(k=0;k<21;k++)
if(x[j]=cons[k]) {c++;}
z[i]=c;
max=z[0]; poz=0;
for(i=0;i<r;i++)
if(max<z[i])
{max=z[i];poz=i;}
puts(x[poz]);}

Last edited by shabbir; 24May2011 at 21:50.. Reason: Code blocks
Mentor
24May2011,21:13   #4
xpi0t0s's Avatar
I'm not surprised you can't debug that code; it's a horrendous mess. Use meaningful variable names, indent code correctly, and use code tags when posting here. You can identify code problems by adding printf statements to it that display intermediate results, for instance as I hinted you could try displaying words as you pull them out of the sentence, then display the consonant count and if it's greater than the previous greatest; these should all help you find the problems.

Why is it "a variant on your program" and not your program itself? Did you find this example online instead of writing it yourself?
Mentor
24May2011,21:19   #5
xpi0t0s's Avatar
Your if statement contains an assignment. You probably wanted to do a comparison.
Light Poster
24May2011,21:22   #6
answerx's Avatar
Of course I wroted myself, if I had found it on the internet it would be correct.
Light Poster
24May2011,21:28   #7
answerx's Avatar
Quote:
Originally Posted by xpi0t0s View Post
Your if statement contains an assignment. You probably wanted to do a comparison.
Yes it's a comparison, thanks for the correction. But it still doesn't work.
Mentor
24May2011,21:29   #8
xpi0t0s's Avatar
Quote:
Originally Posted by answerx View Post
Of course I wroted myself, if I had found it on the internet it would be correct.
lol
Light Poster
24May2011,21:33   #9
answerx's Avatar
Quote:
Originally Posted by xpi0t0s View Post
lol
What can I say, I'm a beginner.
Light Poster
24May2011,21:41   #10
answerx's Avatar
A little help please!