Correction 'un programme

Fermé
zein - 7 déc. 2008 à 20:35
 zein - 7 déc. 2008 à 22:01
Bonjour,je peux pas corriger ce programme

int p;
int pro;
System.out.println("Donner la probabilite");

for(i=0;i<n-1;i++)
{
p=Math.random()%10000;
if (p<pro);
{
t2[i]=t[i];
}
else
{
if(t[i]==0)
t2[i]=1;
else
t2[i]=0;
}

}

---------- Compiler ---------- c2.java:164: 'else' without 'if'
else
^ c2.java:159: possible loss of precision
found : double
required: int
p=Math.random()%10000;
^
2 errors

Output completed (0 sec consumed) - Normal Termination

2 réponses

Matio Messages postés 671 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 25 janvier 2011 299
7 déc. 2008 à 20:41
Math.random() retourne un nombre compris entre ]0,1[ donc float ou double.
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
7 déc. 2008 à 20:42
p doit etre un double et faut enlever le ; apres le if
double p; 
int pro; 
System.out.println("Donner la probabilite"); 

for(i=0;i<n-1;i++) 
{ 
p=Math.random()%10000; 
if (p<pro)
{ 
t2[i]=t[i]; 
} 
else 
{ 
if(t[i]==0) 
t2[i]=1; 
else 
t2[i]=0; 
} 

}
0
merci pour votre aide, mes il me reste une autre erreure
---------- Compiler ---------- c2.java:160: variable pro might not have been initialized
if (p<pro)
^
1 error

Output completed (0 sec consumed) - Normal Termination
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436 > zein
7 déc. 2008 à 21:54
il faut que tu initialise ta variable pro
0
zein > mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010
7 déc. 2008 à 22:01
Merci encore une fois, ça marche maintenant.
0