Not overwriting variable y
Не меняеться значение переменной 'у' в цикле while
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, k, x, i;
double y;
cout << "Enter n, k, x" << endl;
cin >> n >> k >> x;
if (n >= 0){
if (k <= n){
y = 0;
i = 1;
while (i <= n){
if(i != k){
if ((x+2*i) != 0){
y += ((i) /( x+(2*i)));
i++;
cout << "YY" << y << endl;
}else{
cout << "x+2i == 0 Error"<< endl;
}
}else{
i++;
}
cout << "y = " << y << ", i = " << i << endl;
}
cout << "Y = " << y << endl;
}else{
cout << "Wrong k" << endl;
}
}else{
cout << "Wrong n" << endl;
}
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Все переменные в
((i) /( x+(2*i)));
целочисленные, деление целочисленное, дает при x<i гарантированный 0...
Проще всего (да и логичнее, судя по всему) — сделать double x.