Oppure

Loading
04/03/14 19:09
perillitommaso
#include <stdio.h>
#include <stdlib.h>
//#define K 10


/*Prototipi Procedure*/

void MaggioreMinore(int *S,int N,int K,int *NM,int *Nm,int *SP,int *PD);
void ControlloNPari(int N,int *SP,int *PD);
void Media(float *M,int S,int K);
void MassimoSpostamento(float M,int NM,float *MS);

/*Programma Principale*/
int main()
{
    int N,SP,PD,S,NM,Nm,K;
    float M,MS;
    
    K=10;
    printf("Inserisci un numero: ");
    scanf("%d",&N);
    ControlloNPari(N,&SP,&PD);
    S=S+N;
    NM=N;
    Nm=N;
    MaggioreMinore(&S,N,K,&NM,&Nm,&SP,&PD);
    Media(&M,S,K);
    MassimoSpostamento(M,NM,&MS);
    printf("La media aritmetica dei numeri inseriti e' di: %f\n",M);
    printf("Il massimo spostamento e' di: %f\n",MS);
    printf("Il numero maggiore e' di: %d\n",NM);
    printf("Il numero minore e' di: %d\n",Nm);
    printf("La somma dei numeri pari inseriti e' di: %d\n",SP);
    printf("Il prodotto dei numeri dispari inseriti e' di: %d\n",PD);
    
    system("PAUSE");
    return(0);
}

/*Procedure:*/

void MaggioreMinore(int *S,int N,int K,int *NM,int *Nm,int *SP,int *PD){
     int C;
     C=1;
     do {
         printf("Inserisci un numero: ");
         scanf("%d",&N);
         S=S+N;
         ControlloNPari(N,&SP,&PD);
         if(N>NM){
                    NM=N;
                    }
                    else{
                         if(N<NM){
                                    Nm=N;
                                    }
                         
                         }
         C=C+1;
         }
         while(C<K);
     
     return;
     }

void ControlloNPari(int N,int *SP,int *PD){
     float R;
     R=N%2;
     *PD=1;
     if(R=0){
             *SP=*SP+N;
             }
             else{
                  *PD=*PD*(N);
                  }


return;
}

void Media(float *M,int S,int K){
     *M=S/K;
     return;
     }

void MassimoSpostamento(float M,int NM,float *MS){
     *MS=NM-M;
     return;
     }


Quando vado a compilare mi identifica un errore:
49 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp cannot convert `int**' to `int*' for argument `2' to `void ControlloNPari(int, int*, int*)'
50 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp ISO C++ forbids comparison between pointer and integer
51 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp invalid conversion from `int' to `int*'
54 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp ISO C++ forbids comparison between pointer and integer
55 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp invalid conversion from `int' to `int*'


Proprio non so come risolvere, ho provato in tutti i modi.. qualcuno può aiutarmi? :hail:
aaa
04/03/14 19:47
nessuno
Comincia dal primo errore

49 E:\Informatica\Programmi C\LavoroLaboratorio04032014\LavoroLaboratorio04032014.cpp cannot convert `int**' to `int*' for argument `2' to `void ControlloNPari(int, int*, int*)'

che si riferisce alla linea 49 ovvero

ControlloNPari(N,&SP,&PD);

e che dice che il secondo parametro che stai passando ovvero &SP è un puntatore doppio (int **) e non un puntatore semplice (int *)

Quindi correggi in modo da passare un puntatore semplice e non doppio.

Poi continui così con gli altri errori.

Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.