Срыв в подсчете для обеих сторон

С помощью этой программы я пытаюсь добиться результата, который выглядит примерно так

A + B + C = 7

xMin = 3

xMax = 8

3 —- 10

4 —- 11

5 —- 12

6 —- 13

7 —- 14

8 —- 15

Вместо этого я обычно получаю что-то вроде этого

4 —- 0

5 —- 0

6 —- 0

7 —- 0

8 —- 0

Он изменяется только тогда, когда я жестко кодирую xMin или xMax для отображения, все вьюбайты не отображаются.

#include "stdafx.h"#include <iostream>
#include <cmath>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int X = 0;

double a, b, c, xMin, xMax;

double y = 0;

cout << "#1(A): ";
cin >> a;

cout << "\n#2(B): ";
cin >> b;

cout << "\#3(C): ";
cin >> c;cout << "Enter Xmin" << endl;
cin >> xMin;

cout << "Enter Xmax" << endl;
cin >> xMax;y = a + b + c + X;

for (int count = xMin; count <= xMax; count++)
{
cout << count << "\t" << y << "\n";
}

return 0;
}

-2

Решение

Ваш for цикл неправильный (вы не обновляете верхнюю границу), измените его на:

y = a + b + c;

for (int count = xMin; count <= xMax; count++)
{
cout << count << "\t" << count + y << "\n";
}
0

Другие решения

 #include <iostream>
#include <cmath>

using namespace std;

struct updInt{

int xMax;
int xMin;
int inc;
int val;
bool flag;
friend ostream& operator<<(ostream& os, updInt& dt){
os <<dt.val;
dt.val+=dt.inc;
if(dt.val>dt.xMax)
dt.flag=true;
if(dt.val<dt.xMin)
dt.flag=true;
return os;
}
updInt(int a,updInt X,int inc=1){
this->val=a+X.val;
this->xMax = a + X.xMax;
this->xMin = a + X.xMin;
this->inc =inc;
flag=false;
}
updInt(int max,int min,int val,int inc=1){
this->val= val;
this->xMax = max;
this->xMin = min;
this->inc = inc;
flag=false;
}};
int main(){

int a, b, c, xMin, xMax;

cout << "#1(A): ";
cin >> a;

cout << "\n#2(B): ";
cin >> b;

cout << "\#3(C): ";
cin >> c;cout << "Enter Xmin" << endl;
cin >> xMin;

cout << "Enter Xmax" << endl;
cin >> xMax;

updInt X(xMax,xMin,0);
updInt y(a + b + c , X);

for (int count = xMin; count <= xMax; count++)
{
cout << count << "\t" << y << "\n";
if(y.flag)
break;
}

return 0;
}

Вам нужно написать свой оператор ostream, когда вы хотите увеличить его, не касаясь цикла, но я не знаю, почему вы просто не увеличиваете y тоже.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector