Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
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: 8897
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: 8897
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


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Zscaler Threat Report 2026: l'adozione d...
Claude AI minaccia omicidi e ricatti qua...
Dentro la gara: a Milano Cortina 2026 i ...
Samsung Display presenta QD-OLED Penta T...
KONAMI torna con "Silent Hill: Town...
Rende il citofono smart a 44,99€: Ring I...
ThunderX3 XTC, la sedia da ufficio che s...
Mercy, Mission Impossible, Aronofsky: il...
Project Windless: il nuovo action in esc...
Saros: mostrato il gameplay del gioco de...
God of War: Sons of Sparta annunciato e ...
John Wick torna in un nuovo videogioco a...
MADE chiude il 2025 con 59 partner e 250...
007 First Light: allo State of Play un n...
Gli iPhone su Amazon costano meno che su...
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: 05:31.


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