Visualizzazione dei risultati da 1 a 2 su 2

Discussione: errore in programma c

  1. #1

    errore in programma c

    mi segnala un errore "invalid type argument of unary* e non capisco il perke??? qlkn me lo spiega...ora posto il prog...
    il prog deve restituire 1 se la sommatoria di valori da i=0 a dim-1 uguale alla sommatoria negativa...
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX_NUM_ELEM 1024

    int controlla_somma(int *V,int dim);
    int leggi (int V[],unsigned *dim);

    int main()
    {
    int V[MAX_NUM_ELEM],dim;
    do{
    if (leggi(V,*dim)==1) <----qui segnala errore "invalid type of unary*"
    printf("la funzione restituisce %d",controlla_somma(V,dim));
    } while (leggi(V,*dim)!=0<----qui segnala errore "invalid type of unary*"
    int leggi(intV[],dim)
    {
    int i;
    scanf("%u",&dim);
    if (*dim<=0||*dim>MAX_NUM_ELEM return 0;
    for (i=0;i<*dim;i++)
    scanf("%d",V+i);
    return 1;}

    int controlla_somma(int *V,int dim)
    {
    int sum_pos=0,sum_neg=0,i=0;
    while(i<dim-1){
    sum_pos+=V[i];
    sum_neg+=-V[i];
    if(sum_pos==sum_neg)
    return 1;
    else
    return 0;
    }

  2. #2
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAX_NUM_ELEM 1024
    
    int controlla_somma(int *V, int dim);
    int leggi (int V[], unsigned int *dim);
    
    int main(void)
    {
       int V[MAX_NUM_ELEM];
       int dim;
    
       do{
    
          if (leggi(V, &dim) == 1)
             printf("la funzione restituisce %d",controlla_somma(V,dim));
    
       } while (leggi(V , &dim) != 0)
    
       return 0;
    }
    
    int leggi(int V[], unsigned int *dim)
    {
       int i;
       scanf("%u", dim);
       if (*dim <= 0 || *dim > MAX_NUM_ELEM) return 0;
       for (i=0; i < *dim; i++) scanf("%d", V+i);
    
       return 1;
    }
    
    int controlla_somma(int *V, int dim)
    {
       int sum_pos=0, sum_neg=0, i=0;
    
       while(i < dim-1){
    
          sum_pos += V[i];
          sum_neg += -V[i];
    
       }
    
       if(sum_pos == sum_neg)
          return 1;
       else
          return 0;
    }
    Il tuo codice era pieno di errori. Comunque * restituisce il contenuto di una cella di memoria e & l'indirizzo, tu passavi alla funzione un'intero e lo trattavi come puntatore.
    Prego usare tag CODE e identazione.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.