Newsgroup: it.comp.lang.c
Titolo: Funzioni

Devo realizzare un programmino che legge un array di interi, e che poi ci
lavora su' per altre cose,poiche' vorrei imparare bene a modularizzare i
programmi,ho una curiosita:
Io farei
main( )
{
dichiarazione variabili
void carica array(che parametri ci passo)
............
............
...........
}
void carica array()
.............
..........  ditemela voi.
.........
ma se carico una array in una funzione poi il main la riconosce?????? Grazie

 ha scritto nel messaggio
news:aariad$q7q$1...@lacerta.tiscalinet.it...

#include<stdio.h>
void carica_array(tipo_parametri); /*dichiarazione della funzione o
prototipo*/
int main()
{
/*dichiarazioni variabili locali al main*/
.....
carica_array(parametri); /*chiamata della funzione*/
....
return 0;
}
void carica(tipo_parametri parametri)
{
/*dichiarazione variabili locali alla funzione*/
<corpo della funzione>
[return;] /*opzionale per le void*/
}
--
Iscriviti al gruppo yahoo Linguaggio_C  con chat vocale per i soli iscritti
http://it.groups.yahoo.com/group/Linguaggio_C


I'm not prejudiced, I hate everyone equally.

Grazie Antonio sei stato gentilissimo e chiaro.
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrnad2p1r...@barbone.bagnoli.home...


 ha scritto nel messaggio
news:aarq6l$grt$1...@pegasus.tiscalinet.it...



#include <stdio.h>
void carica_vet(int *);  /* *int e' sbagliato */
int main()
{
int array[10];
char continua='n';
do{
 carica_vet(array);
 printf("vuoi continuare s/n? "); /* il c e' case sensitive Printf e'
diverso da printf*/
 scanf("\n%c",&continua); /*metti uno \n  attenzione metti
 l'indirizzo della variabile continua nella scanf */
 }
while(continua=='s');
return 0;
}
/* funzione carica_array*/
void carica_vet (int *p){
int i;
for(i=0;i<10;i++){ /* con l'uguale cicla da 0 a 10 cioe' 11 volte e non 10*/
printf("\ninserisci elemento %d : ",i+1); /* \ e non /  */
scanf("%d",&p[i]);
}
}
--


 for(i=0;i<=10;i++){
for (i=0; i<10; i++)		/* indici da 0 a 9 */
ciao ...
P.S.
prima di prenderti una "cazziata" da qualcuno, quota meglio ... lascia
sopra solo la parte del messaggio che ti interessa e scrivi sotto la
risposta .... cancella tutto il resto ..


stasera non me ne va' una bene!!
non mi funziona la stampa,percheeeeeeeeeee??
grazie zx sei grande.
#include <stdio.h>
void carica_vet(int*);
void stampa_vet(int*);
main()
{
int array[10];
char continua='n';
do{
 carica_vet(array);
 stampa_vet(array);
 printf("\nvuoi continuare s/n?");
 scanf("\n%c",&continua);
 }
while(continua=='s');
}
/* funzione carica_array */
void carica_vet (int *p){
int i;
for(i=0;i<10;i++){
printf("\n inserisci elemento %d :",i+1);
scanf("%d",&p[i]);
}
/* funzione stampa array */
void stampa_vet (int *p){
int i;
for(i=0;i<10;i++){
printf(" il vettore e' composto dai seguenti elementi\n");
printf("\n%d",p[i]);
}
}

 non mi funziona la stampa,percheeeeeeeeeee??
/*hai messo una parentesi graffa in meno*/
#include <stdio.h>
void carica_vet(int*);
void stampa_vet(int*);
int main()
{
int array[10];
char continua='n';
do{
 carica_vet(array);
 stampa_vet(array);
 printf("\nvuoi continuare s/n?");
 scanf("\n%c",&continua);
  }
while(continua=='s');
printf("\ndigitare un carattere per terminare \n");
return 0;
}
/* funzione carica_array */
void carica_vet (int *p){
int i;
for(i=0;i<10;i++){
printf("\ninserisci elemento %d : ",i+1);
scanf("%d",&p[i]);
}
}   /* mancava la parentesi graffa per questo non funzionava*/
/* funzione stampa array */
void stampa_vet(int *p)
{
int i;
printf("il vettore e' composto dai seguenti elementi:\n"); /*fuori dal ciclo
la printf*/
for(i=0;i<10;i++)
printf("\n%d) %d",i+1,p[i]);
}

 ha scritto nel messaggio
news:t9hA8.48159$W9.11...@twister2.libero.it...


 devo passarvi il puntatore a vett??
________________________________________________________
#define N 10 /* mettila sotto le include ... e sostituisci al 10 il
parametro N
cosi se dovessi ingrandire o dimimuire la dimensione dell'array modifichi
solo questo valore ... */
void salva_array(int vett[N])
{
FILE *f;
int h;
 if((f=fopen("dati_vett.dat","wb"))=='\0')
  {
  fprintf(stderr,"impossibile aprire il file\n");
  return;
  }
  else
   for(h=0;h<N;h++)
    if(fwrite(&vett[h],sizeof(int),1,f)!=1)
     fprintf(stderr,"errore di scrittura\n");
fclose(f);


 usi la fscanf??? */
la fscanf per la lettura da file binario
fwrite per la scrittura nel file binario
quando salviamo in un file dobbiamo scriverci dentro non leggervi.


 > usi la fprinf??? */


 > > >     if(fwrite(&vett[h],sizeof(int),1,f)!=1)         /* !=1 perche??
if(fwrite(&vett[h],sizeof(int),1,f)!=1)
     fprintf(stderr,"errore di scrittura\n");
leggiti il prototipo della fwrite ...
il valore restituito da fwrite in tal caso e' uno se ha avuto successo la
scrittura sul file puntato da f, se e' diverso da uno comunichi a video che
si e' verificato un errore di scrittura.
p.s.
la duale della fwrite non e' fscanf come ho detto in un post precedente ma
fread,
fscanf e' la duale di fprintf

[snippone]
Non voglio sembrare scortese, ma porca zozza non si capisce un tubo dei
tuoi post!!! Quota in modo umano, per favore.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscali.it