Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 aiuto linguaggio c

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Stromgald Inserito il - 02/05/2004 : 11:18:20
Ciao ,
avrei bisogno di un aiuto sono ai primi passi con il linguaggio c e ho una traccia del tipo :
Dato un array monodimensionale di interi costruire, a partire dai valori contenuti in questo, un nuovo array
in cui ci sono prima tutti i valori pari del primo array e poi tutti quelli dispari.

ora non so come creare i nuovi array ho iniziato il programma cosi
#include <stdio.h>
main ()
{
int vet[30] , i , j , k , riemp;
//immette il numero degli elementi del vettore
do
{
printf ("Quanti elementi del vettore vuoi inserire?\n");
scanf ("%d", &riemp);
}
while (riemp>30);
//letti in input gli elementi del vettore
for (i=0; i<riemp; i++)
{
printf("Dammi el. (%d) del vettore\n", i );
scanf ("%d", &vet[i]);
}
if (vet[i] %2 ==0)
{
for (k=i; k<riemp; k++)

dopo l'if non so come poter continuare non mi si trova mai se qualcuno può aiutarmi gli ne sarei grato grazie
7   U L T I M E    R I S P O S T E    (in alto le più recenti)
Antonio Inserito il - 02/05/2004 : 23:33:13
Citazione:
Messaggio inserito da nicux

scusami Antonio, ti sei risentito per qualcosa che mi sfugge?
perchè evidentemente mi sfugge...



no, non preoccuparti.. non mi son risentito su niente
era soltanto per chiarezza...
nicux Inserito il - 02/05/2004 : 22:51:39
scusami Antonio, ti sei risentito per qualcosa che mi sfugge?
perchè evidentemente mi sfugge...

Antonio Inserito il - 02/05/2004 : 21:27:16
Citazione:
Messaggio inserito da nicux

Citazione:
Messaggio inserito da Antonio

si, nicux, hai ragione: ho erroneamente dimensionato l'array con una variabile;
cmq, nel tuo algoritmo si deve sostituire "MAX_VETT" con "riemp" (la dimensione realmente occupata del vettore).

Ao.



ovviamente ho utlilizzato identificatori fittizi, chiamali pure come vuoi, ma per convenzione con le costanti usa sempre caratteri maiuscoli




..mi spiace, ma non è una questione di "notazione" o "convenzione"...
MAX_VETT (o max_vett o MaxVett -non importa-) indica la massima dimensione dell'array; riemp (così lo ha chiamato Stromgald) indica il numero di celle occupate (e quindi il vettore potrebbe avere in memoria celle non utilizzate). E' diverso!

Ao.
nicux Inserito il - 02/05/2004 : 21:19:49
Citazione:
Messaggio inserito da Antonio

si, nicux, hai ragione: ho erroneamente dimensionato l'array con una variabile;
cmq, nel tuo algoritmo si deve sostituire "MAX_VETT" con "riemp" (la dimensione realmente occupata del vettore).

Ao.



ovviamente ho utlilizzato identificatori fittizi, chiamali pure come vuoi, ma per convenzione con le costanti usa sempre caratteri maiuscoli
Antonio Inserito il - 02/05/2004 : 20:26:33
si, nicux, hai ragione: ho erroneamente dimensionato l'array con una variabile;
cmq, nel tuo algoritmo si deve sostituire "MAX_VETT" con "riemp" (la dimensione realmente occupata del vettore).

Ao.
nicux Inserito il - 02/05/2004 : 20:06:56
l'algoritmo di antonio funziona ma costringe ad una doppia scansione del vettore iniziale, inoltre in C è sintatticamente errato definire la dimensione di un array con una variabile, di solito si utiliccano costanti definendole nell'header, ad esempio:


#define MAX_VETT 30


dato che nella traccia non è richiesta una relazione d'odine sugli elementi ma solo una separazione si può procedere come segue:


int testa=0,
    fondo=MAX_VETT;

for(int i=0; i<MAX_VETT; i++)
  if(vet1[i]%2)
      {
  	vet2[fondo]=vet1[i];
        fondo--;
      }
   else
      {
   	vet2[testa]=vet1[i];
        testa++;
      }
Antonio Inserito il - 02/05/2004 : 11:48:27
Io lo farei semplicemente così:

/Public/data/Antonio/200452114343_PariDispari.txt

P.S. Ho pensato ad altri algoritmi possibili ad esempio:

- Contare prima quanti numeri pari sono presenti;
- poi un'unico ciclo per posizionare i pari a partire da newVett[0] e posizionare i dispari a partire da newVett["numero numeri pari"+1] in poi;

..ma è evidente che non si giungerebbe ad un risparmio di qualche genere....

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000