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 |
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 :) |
|
|
|