#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;
}
Quindi, per un progetto di matematica che stavo facendo, ho dovuto calcolare quante iterazioni occorrerebbe per un perimetro di 9 per raggiungere 100 se si aumenta il perimetro 4/3x tanto durante ogni iterazione. Quando scrivo il codice come faccio io in precedenza, l'uscita è bene, tuttavia se cambioPerché l'operatore * = non funziona come mi aspetterei?
for(p; p < 100; p = p * 4/3)
a
for(p; p < 100; p *= 4/3)
ottengo in uscita che non ha senso. Sto fraintendendo l'operatore * =? Ho bisogno di parentesi da qualche parte?
In caso di dubbio, aggiungi una parentesi! –
Oppure prendi fortrany e scrivi '4./3' o' double (4)/3' o una qualsiasi altra varietà di incantesimo che costringerà l'uso dell'aritmetica in virgola mobile. – dmckee
@ Jonathon: le parentesi non saranno d'aiuto qui, vero? 'p * = (4/3)' è ancora sbagliato. – TonyK