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
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Stromgald
Nuovo Utente



Inserito il - 02/05/2004 : 11:18:20  Mostra Profilo  Visita l'Homepage di Stromgald Invia a Stromgald un Messaggio Privato  Rispondi Quotando
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

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 02/05/2004 : 11:48:27  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
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....


Modificato da - Antonio in data
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 02/05/2004 : 20:06:56  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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++;
      }

gia' e non ancora...

Modificato da - nicux in data
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 02/05/2004 : 20:26:33  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
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.

Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 02/05/2004 : 21:19:49  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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

gia' e non ancora...
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 02/05/2004 : 21:27:16  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
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.

Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 02/05/2004 : 22:51:39  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
scusami Antonio, ti sei risentito per qualcosa che mi sfugge?
perchè evidentemente mi sfugge...


gia' e non ancora...
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 02/05/2004 : 23:33:13  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
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...

Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,22 secondi.

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