28. december 2000 - 18:18Der er
7 kommentarer og 1 løsning
Vil ikke printe nuller og lige tal ud
Min rutine skal printe antallet af lige, ulige og nuller ud i et antal tal som man taster ind. Jeg modtager tallene (i denne orden: 23230 (et par tal)) som en streng for at køre charAt metoden, men det eneste der virker er odd++; Jeg kan ikke se hvorfor - er der nogle der kan hjælpe ? Tal på forhånd, nedenfor er koden ...
class Three_three {
private int odd, even, zero, temp; private BufferedReader stdin;
public void calculator () throws IOException { stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.println (\"enter an integer value: \"); String value = stdin.readLine();
for (int i=0;i<value.length();i++) { if (value.charAt(i)!=0) // trods denne virker det ikke som forv. { if(value.charAt(i)%2==0) { even++; // denne virker ikke, den tealler zero\'s med som even } } if (value.charAt(i)==0) {zero++;} // virker ikke if (value.charAt(i)%2!=0) // denne virker fint {odd++;} }
System.out.println (\"Amount of even numbers in (\"+value+\") \"+even); System.out.println (\"amount of zero digits in (\"+value+\") \"+zero); System.out.println (\"amount of odd digits in (\"+value+\") \"+odd);
jeg forstår ikke helt din måde at strukturere programmet! nedenfor ses et test-program til løsning af opgaven, hvorfra du kan tage det du skal bruge. læg også mærke til håndteringen af exceptions. personligt ville jeg nok have valgt, at \'caste\' karakterene til heltal og lægge dem i et int[] først. Bemærk: du kan regne på \'chars\', men det er med værdien i unicode!!!
import java.io.*;
class ValueCheck { public static void main(String[] øf) { int zero = 0; int even = 0; int odd = 0; String value =\"\";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.println (\"enter an integer value: \");
for (int i = 0; i < value.length(); i++) { //tallene 0-9 som chars har værdien 48-57 i unicode! if(value.charAt(i)==\'0\') //kunne også være ==48 zero++; else if(value.charAt(i)%2==0) even++; else if(value.charAt(i)%2!=0) odd++; }
System.out.println (\"amount of zero digits in (\"+value+\") \"+zero); System.out.println (\"Amount of even numbers in (\"+value+\") \"+even); System.out.println (\"amount of odd digits in (\"+value+\") \"+odd); } }
ok, stigC, dit virker ikke. Nico22\'s virker.. du får accepteret svar... men du behøver ikke tage dig af, at det er \"grimt\" struktureret (jeg er ligeglad).. Kama du går fuldstændigt amok og laver et kæmpe program.. jeg accepterer bare Nico22\'s svar, da det var det klareste i denne omgang....
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.