虽然Loop在条件C ++之前停止工作

时间:2019-11-20 19:24:18

标签: c++

while循环应在12处停止,但在9处结束。此外,请忽略我拼写错误的英寸。

int main() { 
  double rainFall[12]; 
  int i = 0; 

  while(rainFall[i] > 0 && i < 12 ){ 

    cout << "Enter your rainfaill in incehs for month #" << i + 1 << ": " ; 
    cin >> rainFall[i]; 
    i++;
  }
} 

输入/输出: 在第1个月:9月中,在incehs中输入您的雨水损失

在第二个月的9月中输入您的雨量,单位为

在第3个月输入您的雨量,单位为3:9

在第4个月:9中输入您的雨量,单位:inc

在第5个月输入您的雨量,单位为9:

在第6个月:9中输入您的雨水,以incehs为单位

在第7个月:9中输入您的雨量,单位:

在第8个月:9中输入您的雨量,单位:inc

在第9个月:9中输入您的雨量,单位为inc

2 个答案:

答案 0 :(得分:4)

您检查的条件是错误的,因为您有未初始化的双精度数组,并且检查rainFall[]内部的值是否大于0,而它们可以具有double可以具有的任何值。只需将while条件更改为(i < 12),它便会按照您的期望工作。

答案 1 :(得分:1)

只需将while循环替换为

    from fpdf import FPDF

    pdf = FPDF()
    pdf.add_page()
    pdf.set_xy(0, 0)
    pdf.set_font('arial', 'B', 13.0)
    pdf.cell(ln=0, h=5.0, align='L', w=0, txt="Hello", border=0)
    pdf.output('myTest.pdf', 'F')

双精度的多余检查是不必要的,因为双精度可以是负数。如果希望使用<0语句检查错误,我建议使用int main() { double rainFall[12]; int i = 0 while(i<12){ cout << "Enter your rainfaill in incehs for month #" << i + 1 << ": " ; cin >> rainFall[i]; i++; } } throw语句。 对于https://www.w3schools.com/cpp/cpp_exceptions.asp

的用户来说,这是很好的文档