Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-12-2008, 18:18   #1
fabri_napoli
Junior Member
 
Iscritto dal: Dec 2008
Città: Napoli
Messaggi: 21
[C] io, gli array, e le funzioni...

Sono di nuovo io, qui ad elemosinare aiutooo!! XD
Stavolta mi viene chiesto di trovare il massimo in un array... "questo lo so fare", penso io.. e infatti:
Codice:
#include <stdio.h>
#include <stdlib.h>



main () {
     int i, n, *a, massimo;
     
     printf ("Quante locazioni deve contenere il tuo array?\n");
     scanf ("%d", &n);
     a= (int*) malloc (n*sizeof(int));
     
     for (i=0; i<=n; i++) {
         printf ("Inserisci il valore n.%d\n", i);
         scanf ("%d", &a[i]); }
         massimo=0;
     for (i=0; i<=n; i++) {
         if (a[i]>massimo) {
                        massimo=a[i]; }
                        
         else { massimo=massimo; }
         }
         printf ("Il valore massimo contenuto nell'array e' pari a %d\n", massimo);
         system ("pause");
         }
tutto bene, mi funge... ora però mi viene chiesto di fare lo stesso.. con una FUNZIONE... e come avrete ben capito, evidentemente non ho ancora inquadrato bene come funzionano ste benedette Function
dunque scrivo
Codice:
#include <stdio.h>
#include <stdlib.h>

int maxn (int max);

main () {
     int i, n, *a, massimo, max;
     
     printf ("Quante locazioni deve contenere il tuo array?\n");
     scanf ("%d", &n);
     a= (int*) malloc (n*sizeof(int));
     for (i=0; i<=n; i++) {
         printf ("Inserisci il valore n.%d\n", i);
         scanf ("%d", &a[i]); }
     massimo= maxn (max);
     printf ("Il valore massimo contenuto nell'array è pari a %d\n", massimo);
     system ("pause");
     }
     
int maxn (int max) {
    int i, a[i], n;
    max=0;
    for (i=0; i<=n; i++) {
        if (a[i]>max) {
                   max=a[i]; }
        else { max=max; }
        }
        return max;
        }
buuuum crashhhh! che cos'è che non ho capito?? più che la soluzione del quesito sarei felicissimo se mi aiutaste a capire COSA NON HO CAPITO di ste benedette Funzioni!!!! ("niente" non è una risposta )
Vi ringrazio tanto
fabri_napoli è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2008, 18:28   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
A maxn devi passare i parametri che ti servono nella funzione, il cui valore viene definito in main, in questo caso *a e n, all'interno della funzione devi ricavarti il massimo e ritornarlo al main con return.

Supponi di avere una funzione che fa la somma fra A e B, cosa gli dovrai passare alla funzione somma ? Ovviamente A e B e dovrai ritornare A + B. Stesso discorso in questo caso: devi trovare il massimo, allora gli dovrai passare il vettore e il numero di elementi. Il valore di ritorno dovrà essere il massimo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2008, 18:37   #3
fabri_napoli
Junior Member
 
Iscritto dal: Dec 2008
Città: Napoli
Messaggi: 21
sììììì hai ragioneeee!! ti farei una statua d'oro

Codice:
#include <stdio.h>
#include <stdlib.h>

int maxn (int n, int *a);

main () {
     int i, n, *a, massimo, max;
     
     printf ("Quante locazioni deve contenere il tuo array?\n");
     scanf ("%d", &n);
     a= (int*) malloc (n*sizeof(int));
     for (i=0; i<=n; i++) {
         printf ("Inserisci il valore n.%d\n", i);
         scanf ("%d", &a[i]); }
     massimo= maxn (n, a);
     printf ("Il valore massimo contenuto nell'array è pari a %d\n", massimo);
     system ("pause");
     }
     
int maxn (int n, int *a) {
    int i;
    int max=0;
    for (i=0; i<=n; i++) {
        if (a[i]>max) {
                   max=a[i]; }
        else { max=max; }
        }
        return max;
        }
e così mi funge! grazie infinite!!!!
fabri_napoli è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 22:41   #4
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Consiglio la lettura di una dispensina teorica sulle funzioni (matematica/informatica)..
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2008, 09:29   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
malocchio: hai la firma irregolare, max 3 righe di testo alla risoluzione di 1024.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
"Quasi sociopatico": Sam Altma...
Star Wars Eclipse in difficoltà: ...
Gestione del team e romance organiche: l...
Intel lancia Core Ultra X9 378H: hardwar...
Tomodachi Life non supporterà Handheld M...
Identificati i boss di REvil e GandCrab:...
Google Chrome 148 introduce il caricamen...
Tomb Raider: Legacy of Atlantis, l'uscit...
Casa Bianca: proposto un budget ridotto ...
Telecamere Arlo in offerta su Amazon: Es...
Maine primo stato USA a vietare i data c...
DDL PMI, stop alle false recensioni: le ...
Classifiche JustWatch marzo: Una battagl...
iPhone Fold a rischio ritardo: problemi ...
Artemis II: raggiunto il punto più...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v