Satiel
29-06-2006, 17:09
Ciao a tutti, vi chiedo ancora una volta il vostro aiuto per un programma in C.
Ecco cosa dovrebbe fare:
Acquisire i dati da tastiera e immetterli in un Array, questi numeri però devono essere alternativamente divisibili per 3
*Esempio*
10
5 nn viene considerato
4 nn viene considerato
6
11
16 nn viene considerato
18
ecc...
Ecco il mio codice
#include <stdio.h>
#include <stdlib.h>
#define N1 6
#define T 20
int main(int argc, char *argv[])
{
int V1[N1];
float prova;
int I;
float Q1;
int Q2;
printf("Inserire i numeri-> ");
for(I=0;I<N1;I++){
if(I%2==0){ //controlla se l'indice è pari
do{ //entra nel ciclo per controllo /3
scanf("%d",&prova);
Q1=V1[I]/3;
Q2=Q1;
V1[I]=prova;}
while(Q2*3==prova);} //se il numero è /3 esce dal ciclo
if(I%2==1) //controlla se l'indice è dispari
scanf("%d",&V1[I]); //immette semplicemente il numero
}
/*Visualizza il vettore per vedere se lo ha preso bene*/
for(I=0;I<N1;I++)
printf("\n %d",V1[I]);
system("PAUSE");
return 0;
}
Il problema è che non rimane dentro al ciclo se il numero nn è divisibile per 3, ma mette uno zero e prosegue.
Sono sicuro al 99,9% che il controllo della divisione sia giusto perchè a parte avevo sviluppato un programmino che faceva solo questo, ve lo posto così potete verificare anche voi
#include <stdio.h>
#include <stdlib.h>
#define B 3
int main(int argc, char *argv[])
{
float A;
float C1;
int C2;
int I;
printf("\n\nInserire il numero "); // Inserisce il numero
scanf("%f",&A);
C1=A/3; // Fa la divisione
C2=C1; // Converte il float in int eliminando le virgole
if(C2*3==A) // Se il numero intero è uguale al numero che ho immesso allora anche il risutato era intero
printf(" %f e' divisibile\n\n",A);
else
printf(" %f non e' divisibile\n\n",A);
system("PAUSE");
return 0;
}
Ringrazio in anticipo chiunque sappia aiutarmi
Ecco cosa dovrebbe fare:
Acquisire i dati da tastiera e immetterli in un Array, questi numeri però devono essere alternativamente divisibili per 3
*Esempio*
10
5 nn viene considerato
4 nn viene considerato
6
11
16 nn viene considerato
18
ecc...
Ecco il mio codice
#include <stdio.h>
#include <stdlib.h>
#define N1 6
#define T 20
int main(int argc, char *argv[])
{
int V1[N1];
float prova;
int I;
float Q1;
int Q2;
printf("Inserire i numeri-> ");
for(I=0;I<N1;I++){
if(I%2==0){ //controlla se l'indice è pari
do{ //entra nel ciclo per controllo /3
scanf("%d",&prova);
Q1=V1[I]/3;
Q2=Q1;
V1[I]=prova;}
while(Q2*3==prova);} //se il numero è /3 esce dal ciclo
if(I%2==1) //controlla se l'indice è dispari
scanf("%d",&V1[I]); //immette semplicemente il numero
}
/*Visualizza il vettore per vedere se lo ha preso bene*/
for(I=0;I<N1;I++)
printf("\n %d",V1[I]);
system("PAUSE");
return 0;
}
Il problema è che non rimane dentro al ciclo se il numero nn è divisibile per 3, ma mette uno zero e prosegue.
Sono sicuro al 99,9% che il controllo della divisione sia giusto perchè a parte avevo sviluppato un programmino che faceva solo questo, ve lo posto così potete verificare anche voi
#include <stdio.h>
#include <stdlib.h>
#define B 3
int main(int argc, char *argv[])
{
float A;
float C1;
int C2;
int I;
printf("\n\nInserire il numero "); // Inserisce il numero
scanf("%f",&A);
C1=A/3; // Fa la divisione
C2=C1; // Converte il float in int eliminando le virgole
if(C2*3==A) // Se il numero intero è uguale al numero che ho immesso allora anche il risutato era intero
printf(" %f e' divisibile\n\n",A);
else
printf(" %f non e' divisibile\n\n",A);
system("PAUSE");
return 0;
}
Ringrazio in anticipo chiunque sappia aiutarmi