Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Algoritmi e strutture dati
 
Chiarimento su riempimento e stampa vettore
Clicca QUI per vedere il messaggio nel forum
albakiara
Ciao a tutti! :)
Vorrei riempire un vettore con numeri casuali e stamparlo! Solo che difficoltà a capire dove sbaglio...

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100

void riempi_array (int a[], int n);
void stampa_array (int a[], int n);

int main (void) {
int a[N] = {0}, n;
printf ("Inserisci n\n");
scanf ("%d", &n);
riempi_array (a, n);
stampa_array (a, n);
return 0;
}

void riempi_array (int a[], int n) {
int* p;
for (p = a; p< a+n; p++) {
srand (time(NULL));
*p = rand() % 99+1; //assegno al contenuto di numeri compresi tra 0 e 99
}
}

void stampa_array (int a[], int n) {
int* p;
printf ("vettore: ");
for (p = a; p< a+n; p++)
printf ("%d ",*p);
printf ("\n");
}

Grazie :shock:

mark
code:
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100 void riempi_array (int a[], int n); void stampa_array (int a[], int n); int main (void) { int a[N] = {0}, n; printf ("Inserisci n\n"); scanf ("%d", &n); riempi_array (a, n); stampa_array (a, n); return 0; } void riempi_array (int a[], int n) { int* p; srand (time(NULL)); for (p = a; p< a+n; p++) { *p = rand() % 99+1; //assegno al contenuto di numeri compresi tra 0 e 99 } } void stampa_array (int a[], int n) { int* p; printf ("vettore: "); for (p = a; p< a+n; p++) printf ("%d ",*p); printf ("\n"); }


questa riga di codice --------> srand (time(NULL)); va messa fuori dal ciclo for()

albakiara
grazie :)

albakiara
ne approfitto per chiedere un'altra cosa sui vettori!
ho scritto questo codice per allocare un vettore con n elementi, dove n è inserito da tastiera.appena compilo ottengo 2 warning:

c:13:7: warning: conflicting types for built-in function ‘__builtin_alloca’ [enabled by default]
void *alloca (int n);
^
c:30:7: warning: conflicting types for built-in function ‘__builtin_alloca’ [enabled by default]
void *alloca (int n)
^

code:
int main (void) { int n, *a; //int *p; printf ("Inserisci n\n"); scanf ("%d", &n); a = (int*) alloca (n); free (a); return 0; } void *alloca (int n) { void *a; a = malloc (n * sizeof (int)); if (a == NULL) exit (1); return a; }

Cronovirus
Cambia nome ad "alloca" e mettila prima del main :) (oltre ad importare le opportune librerie)

albakiara
Ho importato le librerie e scritto il prototipo della funzione, anche se nn le ho scritte nel post. Il problema è solo per il nome, ma come mai? Forse xke avevo già scritto in un altro programma una funzione con lo stesso nome?

Cronovirus
lancia "man alloca", esiste già! :D

albakiara
ahahah va bene! grazie come sempre :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate