Schreibe ein Programm, das die Folge von ganzen Zahlen sowie die kleinste in der Sequenz summiert

7
  

Schreiben Sie ein Programm, das die Sequenz summiert   von ganzen Zahlen sowie die kleinste in   die Sequenz. Angenommen, das erste   Ganzzahl lesen mit scanf spezifiziert die   Anzahl der verbleibenden Werte   trat ein. Zum Beispiel die Sequenz   eingegeben:

     

Eingabe: 5 100 350 400 550 678

     

Ausgabe: Die Summe der Folge von   Ganzzahlen sind: 2078

     

Eingabe: 5 40 67 9 13 98

     

Ausgabe: Die kleinste der ganzen Zahlen   eingegeben ist: 9

Das ist ein tägliches Problem, an dem ich arbeite, aber wenn ich das hier anschaue, ist Isnt 5 die kleinste ganze Zahl? Ich habe keine Ahnung, wie ich dieses Programm schreiben soll. Schätzen Sie jede Hilfe

    
Robert 02.02.2009, 23:14
quelle

8 Antworten

19

Als erstes wird die 5 nicht als Teil der Liste betrachtet, es ist die Zählung für die Liste. Daher sollte es nicht in die Berechnungen einbezogen werden.

Da dies Hausaufgaben sind, hier ist der Pseudocode. Ihre Aufgabe ist es, zuerst den Pseudo-Code zu verstehen (führen Sie ihn mit Beispieleingaben durch den Kopf), dann wandeln Sie ihn in C-Code um und versuchen Sie, ihn erfolgreich kompilieren zu lassen (mit denselben Beispieleingaben).

Ich würde die Beispieleingabe von "2 7 3" (zwei Elemente, die 7 und 3 sind) als einen guten Startpunkt vorschlagen, da es klein ist und die Summe 10 ist, die kleinste 3.

Wenn Sie das für mehr als einen Tag versucht haben, dann schreiben Sie Ihren Code als Bearbeitung in diese Frage und wir werden sehen, was wir tun können, um Ihnen zu helfen.

%Vor%

Stack Overflow scheint in drei Camps aufgeteilt zu sein, diejenigen, die dir nur den Code geben werden, diejenigen, die dir sagen, dass du abschweifen und deine eigenen Hausaufgaben machen sollst und diejenigen, die dich lieber erzogen sehen Wenn Sie die Belegschaft treffen, hoffe ich, dass ich im Ruhestand bin, damit Sie nicht mit mir konkurrieren: -).

Und bevor jemand Löcher in meinen Algorithmus nimmt, ist dies für Bildung . Ich habe mindestens einen Haken dabei gelassen, um den Kerl zu trainieren - vielleicht gibt es andere, und ich behaupte, dass ich sie absichtlich dorthin bringen würde, um ihn zu testen: -).

Aktualisierung:

Robert, nach Ihrem (sehr guten) Versuch, den ich bereits kommentiert habe, würde ich Ihren Code so modifizieren, dass er die Aufgabe erledigt (übergeben Sie ihn natürlich, nicht meins). Sie können hoffentlich sehen, wie meine Kommentare den Code ändern, um diese Lösung zu erreichen:

%Vor%

Und hier ist die Ausgabe von Ihren Beispieldaten:

%Vor%

Achte übrigens darauf, dass du deinem Code immer Kommentare hinzufügst. Pädagogen lieben solche Sachen. Also Entwickler, die versuchen müssen, Ihren Code 10 Jahre in die Zukunft zu verstehen.

    
paxdiablo 03.02.2009, 00:24
quelle
11

Lesen:

  

Nehmen Sie an, dass die erste Ganzzahl gelesen wird   mit scanf spezifiziert die Anzahl von   Werte, die noch eingegeben werden müssen

also ist es nicht Teil der Sequenz ...

Für den Rest sind es Ihre Hausaufgaben (und C ...)

    
florent 02.02.2009 23:18
quelle
4

Nein. 5 ist die Anzahl der ganzen Zahlen, die Sie in die Liste einlesen müssen.

    
Jason Punyon 02.02.2009 23:16
quelle
3

Jeebus, ich mache deine Hausaufgaben nicht für dich, aber ...

Hast du aufgehört, das auf dem Papier auszukratzen und herauszufinden, wie es funktionieren soll? Schreibe einen Pseudo-Code und schreibe ihn dann in einen echten Code um. Ich hätte gedacht:

  • Ganzzahl
  • lesen
  • Schleife das oft ** Lesen Sie mehr Integer ** Hinzufügen ** Finde Kleinste

Wenn Sie in C sind, schauen Sie sich INT_MAX an - das wird Ihnen helfen, die kleinste ganze Zahl zu finden.

    
Adam Hawes 02.02.2009 23:18
quelle
1

Da die Liste der ganzen Zahlen variabel ist, würde ich versucht sein, strtok zu verwenden, um die Zeichenfolge in einzelne Strings aufzuteilen (getrennt durch Leerzeichen) und dann atoi, um jede Zahl und Summe zu konvertieren oder ein Minimum zu finden. p>

-Adam

    
Adam Davis 02.02.2009 23:19
quelle
1

Zuerst liest man die Anzahl der Werte (dh 5), dann erstellt man ein Array von int aus 5 Elementen, liest den Rest der Eingabe, teilt sie auf und fügt sie in das Array ein (nach Umwandlung in Ganzzahlen) / p>

Machen Sie dann eine Schleife auf dem Array, um die Summe von zu erhalten, um den kleinsten Wert zu finden.

Ich hoffe, das hilft

    
Aximili 02.02.2009 23:49
quelle
1
  

warn ['] t sucht euch, um die Arbeit zu machen

Cool. Menschen neigen dazu, Anstoß zu nehmen, wenn Sie den Problemtext bei ihnen ablegen, und der Problemtext wird in einer imperativen Form formuliert ("tu das! Schreibe das! Usw.").

Vielleicht möchten Sie etwas sagen wie: "Ich bin mit einem Hausaufgabenproblem festgefahren. Hier ist das Problem: schreibe ein [...]. Ich verstehe nicht warum [...]."

    
Jonas Kölker 03.02.2009 00:09
quelle
1
%Vor%     
Robert 03.02.2009 03:42
quelle

Tags und Links