Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-06-2006, 17:09   #1
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
[C] Acquisizione Array alternato

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









Quote:


#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


Quote:

#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
__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 17:23   #2
Andlea
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 357
Sarò criptico
Codice:
if(a%b==0)
printf("Il numero a è divisibile per b");
Non serve dividere e poi controllare la moltiplicazione del quoziente per il divisore
Andlea è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 17:25   #3
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
Ok grazie ma sono sicuro che il problema era nel fatto che non rimaneva nel cliclo while...
__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 17:34   #4
Andlea
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 357
per forza

Codice:
do{ //entra nel ciclo per controllo /3 
scanf("%d",&prova); 
Q1=V1[i]/3;
Acquisisci prova, poi assegni a Q1 il valore di V1[i] che non è stato ancora definito
Codice:
Q2=Q1; 
V1[i]=prova;}
Assegni a Q2 il valore di Q1, quindi il numero non definito diviso 3, solo poi assegni a prova[i] un valore.
[/code]
while(Q2*3==prova);} //se il numero è /3 esce dal ciclo[/code]
Quindi questo test non sarà mai vero


il codice "corretto" è questo
Codice:
for(I=0;I<N1;I++){ 
if(I%2==0){
do
scanf("%d",&V[i]);
while(V[i]%3==0);
}else
scanf("%d",&V1[i]);

Ultima modifica di Andlea : 29-06-2006 alle 17:37.
Andlea è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 17:51   #5
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
Mille grazie
__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 17:56   #6
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
Niente da fare, non resta nel ciclo
Ecco la modifica

Quote:

#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){
do
scanf("%d",&V1[i]);
while(V1[i]%3==0);
}
else
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;
}

__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 18:11   #7
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
aspè che guardo e ti posto il codice.

EDIT:

allora il seguente codice prende valori alternati partendo dal primo che deve essere mod3. Se lo vuoi al contrario basta che metti ! sull'if del valore booleano.

Codice:
#include "stdafx.h"

#define N1 6
#define T 20

int main(int argc, char *argv[]){
	/* array dei dati che contengono alternativamente valori mod3 l'altro no */
	int arrayValori[N1];
	/* variabile booleana per acquisire valori alternati */
	bool valoreDaInserire = true;
	/* variabile di appoggio per acquisizione dei valori da tastiera */
	int valSup;
	/* variabile per sapere il numero di elementi inseriti */
	int i=0;
	/* acquisizione dei dati */
	while (i<N1){
		scanf ("%d", &valSup);
		if (valoreDaInserire){
			if (valSup%3 == 0) {
				/* inseriamo il valore nell'array */
				arrayValori[i] = valSup;
				/* incrementiamo il numero di elementi */
				i++;
				/* abilitiamo che il prossimo valore non deve essere mod3 */
				valoreDaInserire = false;
			}
			else printf ("Devi inserire un valore mod3.\n");
		}
		else {
			if (valSup%3 == 0){
				printf ("Devi inserire un valore non mod3.\n");
			}
			else{
				/* inseriamo l'elemento nell'array */
				arrayValori[i] = valSup;
				/* incrementiamo il numero di elementi */
				i++;
				/* abilitiamo che il prossimo numero deve essere divisibile per 3 */
				valoreDaInserire = true;
			}
		}
	}

	/* visualizziamo l'array */
	for (i=0;i<N1;i++) printf ("Valore: %d.\n", arrayValori[i]);



	return 0;
}
se lo vuoi diverso cioè che puoi partire da qualsiasi valore allora va leggermente modificato.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 29-06-2006 alle 18:35.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 19:05   #8
Andlea
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 357
Quote:
Originariamente inviato da Satiel
Niente da fare, non resta nel ciclo
Ecco la modifica
while(V[i]%3!=0)
pardòn
Andlea è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 20:10   #9
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
Quote:
Originariamente inviato da Fenomeno85
aspè che guardo e ti posto il codice.

EDIT:

allora il seguente codice prende valori alternati partendo dal primo che deve essere mod3. Se lo vuoi al contrario basta che metti ! sull'if del valore booleano.



se lo vuoi diverso cioè che puoi partire da qualsiasi valore allora va leggermente modificato.

~§~ Sempre E Solo Lei ~§~
Hey è una bella soluzione anche se l'esame di Fondamenti di Informatica non prevede di usare variabili booleane e librerie aggiuntive e strane funzioni, purtroppo devo prendere la strada più scomoda usando le funzioni di base
__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2006, 20:11   #10
Satiel
Senior Member
 
Iscritto dal: Jun 2004
Città: Reggio Emilia
Messaggi: 592
Quote:
Originariamente inviato da Andlea
while(V[i]%3!=0)
pardòn
grazie ora provo
__________________
Case: CM-690, ALI:Enermax Modu82+ 525W, Procio: Intel E8400, MB: Asus P5Q-E, RAM: TeamGroup TXDD2048M800HC4, HD:VelociRaptor WD3000GLFS, VGA:Sapphire Ati HD4870, SchedaAudio: Creative Xtreme Gamer, Dissipatore ThermalTake Big Typhoon con Noctua NF-P12, Monitor: Samsung T220, Tastiera Zboard, mouse Razer Lachesis con Goliatus speed edition
Satiel è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 19:13   #11
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
Quote:
Originariamente inviato da Satiel
Hey è una bella soluzione anche se l'esame di Fondamenti di Informatica non prevede di usare variabili booleane e librerie aggiuntive e strane funzioni, purtroppo devo prendere la strada più scomoda usando le funzioni di base
allora la libreria strana altro non è che un file h dove sono contenute tutte le librerie che ti servono .. è perchè sto usando un progetto di vc.

Per la variabile booleana o te la crei te oppure usi semplicemente un intero.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Record per l'energia eolica: nel Regno U...
Dell e HP rimuovono la codifica e transc...
Prezzo eccezionale per Samsung Galaxy S2...
Black Friday esplosivo: arrivano extra s...
Google apre la strada al file sharing tr...
Black Friday Monitor 2025: OLED, QD-OLED...
Arrivano le nuove specifiche Matter 1.5:...
Microsoft rende open source la trilogia ...
DAZN continua la lotta contro la pirater...
Generativa o predittiva? Il futuro dell’...
BYD va all-in con la Atto 2: batteria pi...
Google modifica la richiesta di consenso...
Black Friday TV: OLED, QLED e Mini-LED a...
007 First Light torna a mostrarsi all'ev...
MOVA Z60 Ultra Roller Complete: il Black...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v