Dubbio su double-int

di il
24 risposte

Dubbio su double-int

Sto svolgendo l'ennesimo esercizio , l'ho già testato e funziona , solo che ho un dubbio sull'ultima parte dell'esercizio , sul fatto che b sia double e vi vada inserita la distanza dalla media dei valori di A, mi viene un numero molto grande , senza virgola , mi sa che ho sbagliato qualcosa a livello "logico"

Scrivere un programma C che:
legge da standard input 20 numeri interi e li inserisce nel vettore A
per ogni numero compreso fra 20 e 25 inclusi stampa quante volte occorre nel vettore A
per ogni numero in A inserisce in un array B di 20 double la sua distanza in valore assoluto dalla media dei numeri di A
visualizza il contenuto di B
#include <stdio.h>
#include <stdlib.h>

int main (){
    int i, A[20], count , somma ;
    double j,B[20], media , distanza;
    count=0;
    media=0.0;
    somma=0;
    distanza=0.0; 

for (i=0 ; i<20 ; i++){
    printf("inserisci un valore :");
    scanf("%d" , &A[i]);
    if (A[i]>=20 && A[i]<=25) count++;
}
printf("il numero di volte che il vettore i numeri tra 20 e 25 appare in A e' : %d\n" , count);

for (i=0 ; i<20 ; i++) {
    somma = somma + A[i];
}

media = somma /2 * (1.0);

distanza = A[i] - media;

for (i=0 ; i<20 ; i++) {
    if (distanza<0) distanza = distanza * -1.0;
    B[i]=distanza;}
    
    printf("il contenuto di B e' : %d\n" , B[i]);
    
    system ("pause");
    return 0;
}  
grazie in anticipo

24 Risposte

  • Re: Dubbio su double-int

    Attenzione all'uso degli indici fuori dai cicli
  • Re: Dubbio su double-int

    oregon ha scritto:


    Attenzione all'uso degli indici fuori dai cicli

    a cosa ti riferisci? grazie per l'aiuto
  • Re: Dubbio su double-int

    Come ti dicevo ...

    Ad esempio, a questa riga

    distanza = A - media;

    e a questa riga

    printf("il contenuto di B e' : %d\n" , B);
  • Re: Dubbio su double-int

    Se mettessi così?

    printf("il contenuto di B e' : %d\n" , distanza);

    edit: mettendo così mi da che il valore di B è 0 ....

    per
    distanza = A - media;

    non è giusto? l'esercizio mi chiede la distanza dei valori di a meno la media dei valori!
  • Re: Dubbio su double-int

    Nella riga che ti ho indicato, il valore di i qual è? Te lo sei chiesto?
  • Re: Dubbio su double-int

    In B , i dovrebbe essere un double giusto?
  • Re: Dubbio su double-int

    Neanche per sogno ... gli indici sono sempre interi.

    Ti avevo fatto una domanda precisa ma non hai risposto ... quanto vale i secondo te??
  • Re: Dubbio su double-int

    oregon ha scritto:


    Neanche per sogno ... gli indici sono sempre interi.

    Ti avevo fatto una domanda precisa ma non hai risposto ... quanto vale i secondo te??

    scusa sto andando in confusione i non vale 20?
  • Re: Dubbio su double-int

    Vale venti e "A" ha venti elementi, "A[0/19]" con "A[20]" cosa ottieni???????
    stessa cosa per "B"

    Due cose per favore,
    1 Usa gli indici solo dentro ai cicli
    2 Non usare dev c++
  • Re: Dubbio su double-int

    vbextreme ha scritto:


    Vale venti e "A" ha venti elementi, "A[0/19]" con "A[20]" cosa ottieni???????
    stessa cosa per "B"

    Due cose per favore,
    1 Usa gli indici solo dentro ai cicli
    2 Non usare dev c++

    so che magari è una stupidata , ma mi sto scervellando e non mi viene la risposta....

    ps cosa cambia tra dev c++ e gli altri compilatori?
  • Re: Dubbio su double-int

    Gio .... le righe

    distanza = A - media;

    e

    printf("il contenuto di B e' : %d\n" , B);

    stanno FUORI dai cicli for e quindi il valore dell'indice i NON E' CORRETTO !
  • Re: Dubbio su double-int

    Dev non è un compilatore!
    è un IDE pieno di bug che non funziona correttamente


    "i" vale 20 ma i tuoi vettori arrivano fino a 19
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    Se lo conti ti da 20 ovvero il valore di i fuori dal ciclo, ora cosa accade se accedi dove non puoi? "A[20]" non esiste, cabum!
    ecco perché ti ho detto che gli indici vanno usato solo dentro ai cicli.
  • Re: Dubbio su double-int

    Io stavo pensando all'overflow , ma non sapendo se fosse giusto non l'ho scritto
  • Re: Dubbio su double-int

    Comunque ho capito grazie mille davvero


    ho messo "distanza" nel ciclo for , e ho rimesso B nel printf finale (l'avevo sostituito con "distanza") , mi viene un numero grosso , ma non vorrei fosse uno dei bug di devc++



    una domanda sugli altri ide quale consigliate e soprattutto cambiano molti comandi del tipo nomi librerie ecc..?
Devi accedere o registrarti per scrivere nel forum
24 risposte