Esercizio "semplice" con c

di il
8 risposte

Esercizio "semplice" con c

Salve provando a fare esercizi più semplici con c rispetto a quello postato prima( immagino fosse completamente sbagliato visto la mancanza di risposte )

1)dichiari un vettore x di tipo intero e dimensione 20
2) riempia interamente il vettore x con valori letti da tastiera
3)stampi a video la media dei valori assoluti dei numeri normalizzati nel vettore x

Primi dubbi : cosa cambia nel mio programma se non riempio tutto il vettore? Cosa sono i numeri normalizzati?

Procedo comunque

#include <studio.h>
#include <stdlib.h>

Int main () {
Int x[20] , i , tot ;
Tot=0 ;
I=0 ;
While (i<20) {
Printf("inserisci un valore:");
Scanf("%d" , x);
If (tot < 0) tot - x ;
Else tot + x;
i++;
}
Printf ("%lf" , tot / 20.0);
System ("pause");
Return 0;
}

8 Risposte

  • Re: Esercizio "semplice" con c

    Ciao,
    per prima cosa tot - x non ha senso, e la stessa cosa vale per il caso con il +. Vuoi incrementare / decrementare tot? Allora usa += e -=.

    Se non riempi interamente il vettore allora... boh! Nel senso che dipende dalle specifiche dell'esercizio: puoi calcolare la media solo sui valori che hai immesso, oppure calcolarla su tutti considerando nulli i valori che non hai inserito, oppure ...

    Per quanto riguarda la normalizzazione... !
  • Re: Esercizio "semplice" con c

    Voglio rendere positivi i valori in caso negativi perché mi chiede il valore assoluto , é giusto quindi mettere

    If (tot<0) tot++; ?

    Magari sbaglio ma mi sembra "vago" scrivere così non so se rende l idea che debba essere positivo!

    Seno potrei fare


    If (tot<0) tot = tot * -1 ;

    Non é più giusto ? Grazie per l aiuto
  • Re: Esercizio "semplice" con c

    Tot++

    significa "aumenta di 1 la variabile tot" ... il segno non c'entra.

    Semplicemente puoi scrivere

    tot = -tot;
  • Re: Esercizio "semplice" con c

    Grazie per l'aiuto
  • Re: Esercizio "semplice" con c

    Riprendo un attimo questa discussione per capire il "ragionamento" di un esercizio simile a questo che riguarda le matrici , devo determinare il valore minimo di ogni riga di una matrice m 10x10 e metterlo nel array a [10]

    Nella soluzione ho trovato (e riporto solo la parte che mi interessa)

    i=0;
    White (i <10) {
    Min = m [0];
    j=0;
    White (j <10){
    Il (m [j] < min) {
    Min = m [j];
    }
    j++}
    Min = b ;
    i++}

    premettendo che in questo caso avrei preferito usare il ciclo for , non capisco qua perché per indicare il minimo delle righe indico con 0 il vettore colonna e mettere i nel vettore riga a livello proprio logico non capisco cosa si intenda dire

    White (i <10) {
    Min = m [0];


    E anche if (m [ i][j] < min)

    Non capisco perché prendo tutta la matrice in considerazione invece che solo il vettore riga

    Spero di essermi spiegato bene , probabilmente sono dubbi stupidi ma noto chequello che mi frega è proprio a livello logico
  • Re: Esercizio "semplice" con c

    Forse ho capito che risposta cerchi?

    Ma tu alla battaglia navale ci hai mai giocato?

    immagina il nostro campo di battaglia

    E' una perfetta MATRICE BIDIMENSIONALE

    sulle righe ci sono le lettere(verticale)
    sulle colonne i numeri(orizzontale)

    (o viceversa )

    ed io dico BOMBA [A][5]
    cosa significa?


    matrice [2][5]
    significa UNO ed UN SOLO dato dell'array situato in riga 2 colonna 5
  • Re: Esercizio "semplice" con c

    gio8890 ha scritto:


    m [ i][j]

    ... tutta la matrice ...
    m [j]

    NON è tutta la matrice ma un solo elemento della matrice, posto alla riga i e colonna j
  • Re: Esercizio "semplice" con c

    Grazie! Ho capito!!!
Devi accedere o registrarti per scrivere nel forum
8 risposte