gpt4 book ai didi

c++ - 为什么这个 do-while-loop 每隔一个循环只写入数组?

转载 作者:行者123 更新时间:2023-11-28 04:09:18 25 4
gpt4 key购买 nike

这个 do while 循环的目的是将坐标(或点)输入两个数组:points_x[] 和 points_y[]。当用户输入非整数输入时,循环将停止。出于某种原因,只有每隔一个 cin 实际上写入数组。有谁知道为什么吗?

cout << "Enter a list of points(x y): ";
do
{
cin >> points_x[v];
cout << points_x[v];
cin >> points_y[v];
cout << points_x[v];
howMany++;
v++;
} while (cin >> points_x[v] && cin >> points_y[v]);

最佳答案

这里你读了两次(每个坐标 x 和 y 一次)

cin >> points_x[v];
cout << points_x[v];
cin >> points_y[v];
cout << points_x[v];

我假设你的意思是“one cin”。

然后在将结果写入数组时增加使用的索引。

v++;

然后您再次读取每个坐标,同时评估循环条件:

while (cin >> points_x[v] && cin >> points_y[v])

我假设你的意思是成为第二个“cin”。

条件期间的读数(即第二个“cin”)已经写入下一个索引,
但是 body 内部的读数然后再次写入相同的索引(覆盖条件读取的值)。

所以最后你输入每个 xy 两次,一次在条件期间被忽略,一次在循环体内“幸存”。

关于c++ - 为什么这个 do-while-loop 每隔一个循环只写入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com