Originariamente inviato da enri101997
va bene così il primo? perchè mi da errore
Il codice va inserito con il tag CODE, altrimenti non si capisce nulla. E sarebbe carino se postassi l'errore che ottieni...


Originariamente inviato da enri101997
codice:
int carattere = testo.charAt(i); 
if (carattere == v) {
  v++;
} else if (carattere == s) {
  s++;
}
No.

Vai a prendere il carattere i-esimo. Ma:
1. i non è dichiarata
2. non c'è alcun ciclo per scorrere la stringa

Inoltre quegli if non hanno alcun senso.
v è il numero di vocali. Perché verifichi se il carattere i-simo è uguale al numero di vocali? Che senso ha?


Originariamente inviato da enri101997
codice:
      int perv = v/l * 100;
      int pers = s/l * 100;
      System.out.println(perv);
      System.out.println(pers);
No, perv e pers varranno (quasi) sempre zero.
v/l è una divisione tra interi. Il risultato è un intero. Questo significa che il risultato viene troncato. Essendo v <= l e s <= l, quella divisione darà 0 nel 99% dei casi. Dichiara perv e pers double e fai un cast.

Poi, un messaggio che spiega l'output rende tutto più chiaro:

System.out.println("La percentuale di vocali e\' " + perv + "%");


Un suggerimento: dai nomi più significativi alle variabili. l, v, s sono incomprensibili. Usa piuttosto lunghezzaInput, numeroVocali, numeroSpazi ecc...