Alcuni suggerimenti sulla creazione di programmi in C? [chiuso]

-2

Quindi al momento sono al mio primo anno di università a studiare ingegneria elettrica. Sto introducendo un'introduzione al corso C, e lo dirò ora, non sono sicuro se riuscirò a superare l'esame. Anche con l'aiuto di mio padre trovo la programmazione estremamente difficile. Se mi dai un codice per tracciare e capire cosa viene stampato, se ha qualche errore, sono abbastanza bravo a farlo. Tuttavia, quando si tratta di scrivere un programma da zero, questa è la mia vera lotta. Anche se mi viene fornita una serie di istruzioni su come farlo, non sarò ancora in grado di farlo. Ad esempio, sto facendo un esame precedente che mi chiede di chiedere all'utente di inserire numeri interi fino a quando l'utente non inserisce 0. Trascorso 3 ore a pensarci su senza indugi. A questo punto il programma prenderà tutti i valori immessi dall'utente e prenderà una media.

Ecco come ho pensato:

  • Ho bisogno di usare un ciclo for o un ciclo while per chiedere all'utente di inserire un numero intero.
  • Devo trovare un modo per memorizzare le variabili immesse dall'utente.
  • Se l'utente inserisce 0, utilizzerò un'istruzione if per calcolare la media, stamparla e interromperla.

Quindi sono bloccato nel trovare un modo per archiviare tutte le variabili e questo mi ha bloccato per ore.

    
posta Donald Dang 27.11.2014 - 00:57
fonte

3 risposte

2

Un modo importante per apprendere la programmazione (e molte altre cose) è leggere il lavoro degli altri, in particolare dei maestri.

Altrettanto importante per la programmazione è fare ciò che ti è stato chiesto di fare e nient'altro .

Quindi, se le domande chiedono

prompt the user to enter integers until the user enters 0.

allora questo è tutto che dovresti fare. Il primo taglio della logica potrebbe sembrare qualcosa di simile

output the prompt
get the number
if number not zero then loop

Quindi quali strumenti o pezzi dobbiamo costruire da questo?

Forse potresti usare printf per mostrare il prompt, scanf per ottenere l'input e while per formare il ciclo. Ha senso?

Ma quei pezzi non corrispondono alla logica iniziale (a meno che tu non sappia un ciclo do ... while ). Quindi dovremmo iniziare con il ciclo

while (n != 0) {
    printf("Please input an integer\n"); // output the prompt
    scanf("%d", &n); // get the number
}

Ovviamente, vedremo che non abbiamo definito n , quindi è meglio aggiungerlo

int n = -1; // initialize n so that the loop will work the first time
while (n != 0) {
    printf("Please input an integer\n"); // output the prompt
    scanf("%d", &n); // get the number
}

La domanda non ha richiesto una funzione, un programma di lavoro o il corretto #include s, quindi non li ho scritti.

La chiave per imparare a programmare è (a parte leggere il codice) è scrivere codice. Un sacco. Fare errori. Aggiustali. Impara da loro. E fare di più. Fallo finché non puoi pensare nel codice . Tutti gli di intelligenza media possono farlo.

E un'altra cosa. Non crederesti a quanto sia stupido il computer. Devi dirlo tutto . E fa solo ciò che dici, non ciò che intendi .

E sugli esami: assicurati di aver capito cosa è previsto. Ad esempio, se il docente ha detto di aggiungere sempre il corretto #include s, allora fallo. I documenti d'esame hanno sempre contesto e interpretazione dal semestre di studio.

    
risposta data 27.11.2014 - 01:48
fonte
1

La risposta ti è stata data su un piatto, sfortunatamente non ti aiuterà a imparare e non sei un programmatore migliore a meno che non pensi a come abbiamo ottenuto la risposta così facilmente. (O vuoi solo passare un esame?)

"So I'm stuck on finding some way to store all the variables and this has stumped me for hours."

Hai pensato di chiedere "C'è un altro modo?", come pensi che i rispondenti abbiano trovato la risposta? Lo sapevamo già tutti, come lo abbiamo risolto così rapidamente. Ci siamo subito resi conto che il modo in cui stavi pensando non avrebbe mai funzionato.

Il mio processo di pensiero è "Quella lista ha potenzialmente input illimitati, la memorizzazione dei numeri non è possibile." In quale altro modo può essere fatto? Che cos'è una media? - totale diviso per il numero di campioni. numero di campioni. Calcola la media alla fine.

Tuttavia, penso che sia veloce come lo avrai letto. Come - fai esperienza e facendolo molte volte, niente a che fare con noi più intelligenti di te .....

    
risposta data 27.11.2014 - 04:14
fonte
0

Non è necessario memorizzare tutte le variabili, solo il loro totale parziale e quante di esse ci sono per calcolare la media.

FTR, per memorizzare tutte le variabili, è necessaria una struttura di dati allocata dinamicamente, che richiede malloc / free e nessuno dovrebbe avere quella merda su di loro.

    
risposta data 27.11.2014 - 01:11
fonte

Leggi altre domande sui tag