Wo liegt der Fehler? Anfänger sucht Hilfe. :-(
-
Hi,
ich habe wiedermal Probleme mit einem kleinen Programm.
Ihr werdet euch sowieso den Kopf kratzen und sagen "Wie doof..."
Aber wer nicht fragt der stirbt dumm.Das Programm soll den gewählten zahlenzwischenraum zwischen a und b zusammenaddieren.
a=1
b=5
1+2+3+4+5Bitte nicht von den vielen printf iritiren lassen.
hier das Progi:
#include<stdio.h>
#include<math.h>int a, b, z, e, y,v,w,c;
main()
{
//Eingabe der Daten
printf("\n Addition der Gauss-Zahlenreihe mit einer schleife");
printf("\n Bitte die 1. Zahl eingeben bei der die Addition beginnen soll:");
scanf("%i", &a);
printf("\n\n Bitte die 2. Zahl eingeben bis zu der Addiert werden soll:");
scanf("%i", &b);//Berechnung durchführen
//Berechnung auf einfachem Wege
//Zahl = N*(N+1)/2
v=b+1;
w=b*v/2;
y=a;
//printf("\n V=%i",(v));
//printf("\n W=%i",(w));
//printf("\n Y=%i",(y));
// Berechnung via Schleife
for (;y<=b;y++)
{
z=y;
printf("\n zahl:%i",(z));
e=z+y;}
//e=z+y;
printf("\n\n Die Summe der Reihe ist %i", (e));
printf("\n Das richtige Ergebniss ist:%i", (w));
printf("\n\n Programm beenden?");
scanf("%i");wo liegt der Fehler? hat einer den durchblick bei meinem gewirr?
Würd mich riesig freuen.
Danke
Toni
-
Also meine Glaskugel sagt, du wirst dumm sterben... Spaß beiseite, was'n mit ner Fehlermeldung? Und was zur Hölle soll das für ne Formel da sein? oO
-
Editiere am besten ersteinmal deinen Beitrag und packe deinen Source-Code in entsprechende C/C++ - Tags.
Wenn in der Variable e der aufaddierte Wert stehen soll, dann solltest du
1. e vor der Schleife auf 0 setzen
2. e in der Schleife um den Schleifenzähler (y bzw. z???) erhöhen, d.h.int e = 0; int y; for(y = a; y <= b; y++) { e += y; // entspricht: e = e + y }
P.S.: die Gaußsche Summenformel paßt nur für Addition der Zahlen von 1 bis N, d.h. du müßtest noch davon den Wert für 1 bis a-1 abziehen: b*(b+1)/2 - (a-1)*a/2.
-
o.k.
vielen Dank.Fehlermeldung hatte ich keine bekommen.
Der Fehler lag hier:
e+=ye habe ich auch noch auf 0 gesetzt (im deklartionsteil)
Warum hat er meine formel nicht genommen?
Bei dieser neuen addiert er sicherlich das ergebnis von y auf e dazu..?
jetzt geht es auch das ich z.b. von 20 bis 30 aufaddiere.Ich werd das programm noch mal etwas ansehnlicher gestallten.
Danke nochmals