我的节目没有结束

时间:2018-02-07 22:14:15

标签: c++ c++11

我也是新的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"));


}
}

3 个答案:

答案 0 :(得分:0)

x0开始。每次找到并打印一个数字时,它都会增加。只要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条件变量永远不会递增以使你脱离外循环。这是一个逻辑错误,可以通过为作业使用适当的控制结构来避免。