Can anyone tell me the errors? | Sololearn: Learn to code for FREE!

0

Can anyone tell me the errors?

https://www.sololearn.com/coach/73?ref=app

4/26/2021 3:12:59 PM

Atul

7 Answers

New Answer

+1

Atul First get number of words then replace all space and count letter. Then finally divide no_of_letters by no_of_words Here is complete solution: public class Program { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int f=0,count=0; String n=sc.nextLine(); int len = n.split(" ").length; n = n.replaceAll("\\s", ""); //n=" "+n; for (int i=0;i<n.length();i++){ char c=n.charAt(i); if(Character.isLetter(c)){ ++f; } //if(c==' '){ //count ++; //} } double s=(double) f / len; //int ac=(int)s; System.out.println(Math.round(Math.ceil(s))); } }

+1

Atul Your solution was also right but you just need to do some changes. See here import java.util.*; public class Program { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int f=0,count=0; String n=sc.nextLine(); n=" "+n; for (int i=0;i<n.length();i++){ char c=n.charAt(i); if(Character.isLetter(c)){ ++f; } if(c==' '){ count ++; } } double s=(double) f / (count); System.out.println(Math.round(Math.ceil(s))); } }

0

import java.util.*; public class Program { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int f=0,count=0; String n=sc.nextLine(); n=" "+n; for (int i=0;i<n.length();i++){ char c=n.charAt(i); if(Character.isLetter(c)){ ++f; } if(c==' '){ count ++; } } double s=(double)(Math.ceil(f/count)); int ac=(int)s; System.out.println(ac); } }

0

🅰🅹 🅐🅝🅐🅝🅣 why both round and ceiling function are used at a time?

0

🅰🅹 🅐🅝🅐🅝🅣 Can you please tell me basically what were the errors in my program?

0

Atul There was little mistake. You were doing Math.ceil(f / count) So here f and count both are integer and when you divide then output maybe like this For example f = 3, count = 4 So f / count = 3 / 4 = 0 So in this case Math.ceil will give 0 but it should not be like that. You should cast f to double and then divide by count. So (double) f / count = 3.0 / 4 = 0.75 If you do Math.ceil then output will be 1.0

0

Atul Why round and ceiling method at same time? Because Math.ceil will give double value but you have to get output as Integer so Math.round will give integer value. Math.round(Math.ceil(3.4)) = Math.round(4.0) = 4