Ich habe Probleme beim Schreiben eines Programms in C, das S berechnet, wobei S = {1/50 - 3/48 + 5/46 ...} mit 9 Elementen ist. Ich weiß nicht, wie man den DIFFERENCE-Operator gefolgt von einem SUM-Operator verwendet, und ich MUSS die für Struktur verwenden.Brüche: Summe und Unterschied in C-Programmierung
Hier ist das Programm, das ich schrieb:
#include <stdio.h>
#include <stdlib.h>
int main (void) {
int n, d, S, i;
i = 0;
n = 1;
d = 50;
S = n/((double)d);
for (i = 0; i < 4; i++) {
n += 2;
n -= 2;
S = S + (n/((double)d));
S = S - (n/((double)d));
}
printf("%d", S);
return 0;
}
Ich weiß, dass die Variablendeklarationen falsch sein kann und das ist genau das, wo ich verwirrt. Ich habe S als eine ganze Zahl deklariert, aber d (Nenner) zu verdoppeln, weil das Ergebnis natürlich eine Dezimalzahl sein muss.
Kann mir jemand helfen ??
Der Ausgang Ich erhalte ist: 0
Sie möchten den Code in einem Debugger durchgehen, während Sie alle relevanten Variablen untersuchen, um zu erfahren, was passiert. – alk
Wenn 'S' ein' int' ist, dann ist es eine ganze Zahl. Eine ganze Zahl kann nur eine ganze Zahl sein. – NathanOliver
'n + = 2; n- = 2; 'macht keinen Sinn. 'n' ändert sich am Ende nicht. Dies ist ein NOP. Gleiches gilt für diese beiden Aussagen: S = S + (n/((doppelt) d)); S = S - (n/((doppelt) d)); ' – alk