n° 219
Novembre 2017
Dicembre 12, 2017, 02:26:35 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Funzione array  (Letto 2663 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
legeo88
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 15


Mostra profilo E-mail
« inserita:: Febbraio 11, 2014, 01:39:36 »

allora mi ritrovo questo pezzo di codice ( che ho scritto io ,ergo se avete delle critiche le accetto molto volentieri )

Codice:
#include <stdio.h>
#define dim 10

int main(void)
{

int array[dim];
int array2[dim];
int array3[dim];
int i;
int n;
int contatore;
int contatore2;

do{
printf("-------------------------------------------\n");
printf("Seguire l'ordine numerico delle istruzioni\n");
printf("-------------------------------------------\n");
printf("1)compila array1\n");
printf("2)compila array2\n");
printf("3)mostra elementi negli array\n");
printf("4)unisci gli array\n");
printf("0)per uscire\n");
scanf("%d" ,&n);

switch(n){
case 1:
printf("inserisci quanti elementi vuoi compilare\n");
scanf("%d" ,&contatore);
for(i=0 ; i<contatore ; i++){
printf("inserisci il valore dell'elemento %d:" ,i+1);
scanf("%d" ,&array[i]);
}
break;

case 2:
printf("inserisci quanti elementi vuoi compilare\n");
scanf("%d" ,&contatore2);
for(i=0; i<contatore2 ; i++){
printf("inserisci il valore dell'elemento %d:" ,i+1);
scanf("%d" ,&array2[i]);
}
break;

case 3:
for(i=0; i<contatore; i++){
printf("array 1 elemento %d: valore:%d\n" ,i+1 ,array[i]);
}
printf("-----------------------------------------\n");

for(i=0; i<contatore2; i++){
printf("array 2 elemento %d: valore:%d\n" ,i+1 ,array2[i]);
}
break;

case 4:
for(i=0 ; i<dim; i++)



break;

default:
printf("hai inserito un valore non valido\n");
break;

}}while(n != 0);



return 0;
}

la mia domanda è : sarebbe possibile mettere in forma di funzione i vari contenuti dei case ? se si come (prima della soluzione si accettano suggerimenti Sorriso?

un'altra cosa (se è possibile fare una seconda domanda )

ma qual'è la differenza ( E quand'è meglio da usare uno o l'altro ) tra :

Codice:
const int xxx
static const int xxx
#define dim 10

Registrato
VBeXtreme
Sr. Member
****

Karma: +18/-106
Scollegato Scollegato

Messaggi: 700


Mostra profilo
« Risposta #1 inserita:: Febbraio 11, 2014, 05:02:23 »

Si che si può fai la funzione,metti i parametri e restituisci il risultato.La domanda rimane molto strana.
Citazione
const int xxx
static const int xxx
#define dim 10

Allora la prima è una costante che tutti possono accedervi,la seconda è una costante che solo il corrente modulo può accedervi.
La terza è una direttiva del preprocessore,quindi non verrà allocata memoria nello stack per contenerla ma ovunque apparirà "dim" verrà sostituita da "10" prima di essere compilata,quindi non si dovrà accedere ad un'area della memoria per leggerne il valore.
In definitiva tra const e define non c'è tanta differenza quando le si usano come valori globali.
Mentre ricopre molta importanza quando la si usa in una dichiarazione di una funzione.

Codice:
void copia(char*,const char*);

In questo prototipo nonostante non ci siano i nomi(lo standard lo permette) si capisce subito che la funzione copierà il secondo parametro senza modificarlo all'interno del primo.
Registrato

//Sorry limit 300 char
#include <stdio.h>
int main(){int m[5] = {707406378,42,0x58454256,1296388692,69};int o;int(*e)(const char*,...)=printf;for(o=0;o<0x97;o++)e("%s",(char*) m);e("%s",(char*)&m[2]);for(o=0;o<0x97;o++)e("%s",(char*)m);e("*");return 0;}
legeo88
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 15


Mostra profilo E-mail
« Risposta #2 inserita:: Febbraio 17, 2014, 02:01:31 »

mhm credo di aver capito dove sbagliavo, anche se penso che sulle funzioni e puntatori ci sarà da perdere un bel po' di tempo per capirli veramente bene . Grazie mille però per la spiegazione Sorriso
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines