Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wie kann ich in C eine Summenfunktion programmieren ??

Empfohlene Antworten

Veröffentlicht

Hallo!

Ich möchte gerne ein Programm schreiben was eine Summenfunktion beinhaltet:

Das heisst ich gebe einen Startwert ein, zb. 2 und einen Endwert ein z.b 6. und jetzt will ich das das programm 2 +3+4+5+ 6 rechnet !

Das geht doch bestimmt mit einer Zählschleife oder ???

Bitte schnell antworten!!!

Daaaanke !

Na ja mein Ansatz is bis jetzt nur die zählschleife, eine if bedingung hab ich auch schon drin, das der sw kleiner als der ew sein muss:)

wie geht es denn noch????

das sollte doch eigentlich reichen.

Zählerschleife und die Überprüfung.

Mehr solltest Du nicht brauchen, mal abgesehen von einer Ausgabe.

greetz

Ja das hab ich mir auch gedacht, jedoch weis ich nit wie man das realisiert in C

nun,

Du liest also eine Start- und einen Endwert ein.

Vergleich: st<ew -> Ja -> weiter sonst Ende.

Is klar, ne If - Anweisung.

Die Summe der Zahlen ist erst Null.

also Summe=0

Dann die Schleife.

der Zaehler beginnt mit dem SW.

Bei jedem Durchlauf wird die Summe jeweils um den Zeahler erhöht.

Der Zaehler wird in jedem Durchlauf um 1 erhöht.

Schleife läuft solange, bis der EW erreicht ist.

Dann Ausgabe der Summe.

Sorry, aber ich wollte jetzt nicht den Quellcode aufschreiben... Das überlasse ich Dir.

Aber der Ablauf ist soweit klar ?

greetz

EDIT: Ist noch einer vor mir gekommen ...

Aber stimmt eigentlich.

Haste denn überhaupt schon mal mit C programmiert ?

Ne C is ganz neu für mich!

Aber ich werd es jetzt mal versuchen

Danke

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <iostream>

main ()

{

int sw, ew, ergebnis ;

printf ("\nDieses Programm berechnet die gesamte Summe eines Anfangswert.\n");

printf ("bis zu einem beliebeigen Endwert\n");

do{

printf ("\nBitte geben Sie einen ganzzahligen, positiven Startwert ein.\n");

scanf ("%i", &sw);

printf ("\nBitte geben Sie einen ganzzahligen, positiven Endwert ein.\n");

scanf ("%i", &ew);

if (sw >= ew)

system ("cls");

printf ("\nDer Endwert muss logischerweise groesser als der Startwert sein!\n");

getch();

system ("cls");

}while (sw >= ew);

for (ergebnis = 0; sw <= ew; sw++)

{

}

printf ("Ergebnis %i", ergebnis);

}

So jetzt nur noch die for schleife füllen, und das war eigentlich auch mein problem!

Na ja ich glaub ich bin zum programmieren einfach nit geboren :(

nun, die Schleife kann so nix werden.

probier mal sowas:

int summe=0;

for (int zaehler=sw; zaehler>=ew; zeahler++)

{

summe+=zaehler;

}

greetz

Vor allem gehts mit der Gauss-Methode deutlich schneller, wenn sehr viele Zahlen addiert werden sollen!

Original geschrieben von sunday united

nun, die Schleife kann so nix werden.

probier mal sowas:

int summe=0;

for (int zaehler=sw; zaehler>=ew; zeahler++)

{

summe+=zaehler;

}

greetz

so kann die Schleife aber auch nichts werden.... es muss heißen zaehler <= ew ;)

MfG Roman

Bitte schön

int summe = 0;

summe = ((UG + OG)/2)*(UG - OG)

Geht viel schneller als ne Zählschleife!

UG = untere Grenze

OG = obere Grenze

Hatte ich vergessen

Original geschrieben von CrazyRay

so kann die Schleife aber auch nichts werden.... es muss heißen zaehler <= ew ;)

MfG Roman

Es handelt sich zwar "nur" um einen Tippfehler, aber dennoch hast Du natürlich recht, Roman.

Danke für den Hinweis.

;)

greetz

Hi

hab mal versucht dein Problem zu lösen!

Vielleicht kann ich dir damit weiterhelfen!

------------------------------------------------------------------------------------------------------

#include <stdio.h>

void main (void)

{

int zahl1,zahl2;

int i=1;

printf("Bitte geben sie den Startwert ein!");

scanf("%i",&zahl1);

printf("Bitte geben sie den Stoppwert ein!");

scanf("%i",&zahl2);

fflush(stdin);

for(i=zahl1;i<=zahl2;i++)

{

if(i==zahl2)

{

printf("%i",i);

}

else

{

printf("%i,",i);

}

}

fflush (stdin);

getchar ();

return 0;

}

-------------------------------------------------------------------------------------------------------

Ich hoffe der Quelltext stimmt!Bei mir funzt es!

Mfg

Red Cap

Hallo,

ehrlich gesagt, kann ich nicht nachvollziehen was Dein Programm mit der Fragestellung zu tun hat. Es gibt die Zahlen zwischen "zahl1" und "zahl2" auf dem Bildschirm auf (die if-Abfrage ist überflüssig, da der "if" und "else" Fall identisch sind).

Ein paar generelle Anmerkungen noch zum Code: "main" liefert _immer_ ein int zurück, ein flush auf "stdin" liefert nicht definierbare Ergebnisse.

Nic

Sorry dann hab ich es falsch verstanden!Tut mir sorry!

Bin im Programmieren noch ein Anfänger!

Sorry!

Kannst du vielleicht meine Frage im forum beantworten?

(Programm)

Ein paar generelle Anmerkungen noch zum Code: "main" liefert _immer_ ein int zurück

Ich würde hierzu gerne nocheinmal darauf verweisen, dass der Standard (ISO/IEC 9899:1999) dies fuer sogenannte "Freestanding Environments" _nicht_ zwingend vorschreibt.

Auszug:

... In a freestanding environment (in which C program execution may take place without any benefit of an operating system), the name and type of the function called at program startup are implementation-defined...

Nachzulesen in ISO/IEC 9899:1999 Kapitel 5.1.2 "Execution Environments"

Hallo,

das ist zwar richtig, aber wohl eher theoretischer Natur, da üblicherweise in einem Hosted Environment mit Betriebssystemunterstützung gearbeitet wird. Bei Freestanding Environments existieren noch Reihe weiterer Unterschiede insbesondere in Bezug auf die Kommunikation mit dem Betriebssystem (Programmtermination, File IO, Umgebungsvariablen, etc.). Wenn ich mich richtig entsinne, gabs da auch im Annex eine entsprechende Liste.

Nic

Hallo,

ich muss nochmal meinen Senf dazugeben.

1. Ich wuerde die Zahl der "freestanding environments" nicht unterschätzen. (Waschmaschinen wollen auch programmiert werden :) )

2. freestanding environments kommunizieren nicht mit einem OS, weil es normal keines gibt. (Oder ein RTOS ist direkt in das Programm integriert)

3. Der von dir angesprochene Zusatz lässt sich hauptsächlich über Systeminitilisierung und Libraries aus.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.