#include <iostream>
using namespace std;
int main()
{
//If a triangle has a perimeter of 9 units, how many iterations(each iteration is 4/3 as much) would it take to obtain a perimeter of 100 units? (or as close to 100 as you can get?)
double p = 9; int it = 0;
for(p; p < 100; p = p * 4/3){
cout << p << endl;
it++;
}
cout << p << endl;
cout << it << endl;
system ("PAUSE");
return 0;
}
Więc dla projektu matematycznego, który robiłem, musiałem dowiedzieć się, ile powtórzeń zajmie obwód 9, aby osiągnąć 100, jeśli zwiększysz obwód 4/3x tyle podczas każdej iteracji. Kiedy napisać kod tak jak ja powyżej, wyjście jest w porządku, jednak jeśli zmienięDlaczego operator * = nie działa tak, jak bym tego oczekiwał?
for(p; p < 100; p = p * 4/3)
do
for(p; p < 100; p *= 4/3)
mam wyjścia, że nie ma sensu. Czy nie rozumiem operatora * =? Czy gdzieś potrzebuję nawiasów?
W razie wątpliwości dodaj nawias! –
Albo zdobyć wszystkie fortrany i napisać '4./3' lub' double (4)/3' lub dowolną z wielu innych zaklęć, które wymuszą użycie arytmetyki zmiennoprzecinkowej. – dmckee
@ Jonathon: Nawiasy nic tu nie pomogą, prawda? 'p * = (4/3)' jest nadal błędne. – TonyK