我也是新的c ++而且我必须设计一个程序来确定前四个三角形的正方形数字,输出正是我想要的结果,但它在打印前四个之后就不会退出。我无法弄清楚它可能是什么。我不能CTRL C,因为我会获得积分。这是什么问题?
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.view.Window;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import java.util.Map;
public class BelitungMap extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap map;
private LatLng hotel1 = new LatLng(-2.739872, 107.632400);
private LatLng hotel2 = new LatLng(-2.742191, 107.628693);
private LatLng hotel3 = new LatLng(-2.740410, 107.626108);
private LatLng hotel4 = new LatLng(-2.739044, 107.626762);
private LatLng hotel5 = new LatLng(-2.728040, 107.629075);
private LatLng hotel6 = new LatLng(-2.721031, 107.629697);
private LatLng hotel7 = new LatLng(-2.560926, 107.702065);
private LatLng hotel8 = new LatLng(-2.557391, 107.745207);
private LatLng hotel9 = new LatLng(-3.230771, 107.647814);
private LatLng hotel10 = new LatLng(-2.961165, 107.533155);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.belitung_map);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
//map.setMyLocationEnabled(true);
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
map.addMarker(new MarkerOptions()
.position(hotel1)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Billiton Hotel & Klub").snippet("Hotel Bintang 3"));
map.addMarker(new MarkerOptions()
.position(hotel2)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Hotel Lux Melati").snippet("Hotel Bintang"));
map.addMarker(new MarkerOptions()
.position(hotel3)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Grand Hatika Hotel").snippet("Hotel Bintang 4"));
map.addMarker(new MarkerOptions()
.position(hotel4)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Golden Tulip Essential Belitung").snippet("Hotel Bintang 3"));
map.addMarker(new MarkerOptions()
.position(hotel5)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("BW SUITE Belitung Hotel").snippet("Hotel Bintang 4"));
map.addMarker(new MarkerOptions()
.position(hotel6)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Bahamas Hotel & Resort").snippet("Hotel Bintang "));
map.addMarker(new MarkerOptions()
.position(hotel7)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("The Villa of Lor In Tanjung Tinggi").snippet("Hotel Bintang"));
map.addMarker(new MarkerOptions()
.position(hotel8)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Hotel Santika Premiere Beach Resort Belitung").snippet("Hotel Bintang"));
map.addMarker(new MarkerOptions()
.position(hotel9)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Arumdalu Private Resorts").snippet("Hotel Bintang"));
map.addMarker(new MarkerOptions()
.position(hotel10)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinhotel))
.title("Leebong Island Resort").snippet("Hotel Bintang"));
}
}
答案 0 :(得分:0)
x
从0
开始。每次找到并打印一个数字时,它都会增加。只要x<=HOW_MANY
。
你说你的程序找到4个数字但仍在运行。 4次点击后,x
将为4. 4 <= 4
?答案是肯定的,所以你的程序一直在运行。
将条件更改为x < HOW_MANY
,或将x
初始化为1
。
一条小腿是否有效,结果显示[1,512]范围内所有数字的总和 131328 。第5 square triangle number次 1413721 。
这意味着在您找到第四个三角形数字后,您将永远总和足以找到下一个。这将导致您看到的无限循环。
上面的答案仍然是正确的解决方法,但这就是你最终无限循环的原因。
答案 1 :(得分:0)
如果x = 0
代替while (x<=HOW_MANY)
,则需要撰写while (x<HOW_MANY)
。
答案 2 :(得分:0)
for
应该用于迭代,while
应该用于条件测试。
正如已经指出的那样,问题是你的x
条件变量永远不会递增以使你脱离外循环。这是一个逻辑错误,可以通过为作业使用适当的控制结构来避免。