CODE没有在c ++中执行

时间:2018-05-16 12:19:57

标签: c++

任务2仍未执行。任务1工作正常,我输入奶牛的屈服值;但随后代码停止运行。警告称Herdtotalweek可能未被初始化。但我不知道如何解决这个问题。没有其他警告或错误。

#include <iostream>
#include <string>
using namespace std;

int main() { //Task 1
  int Herdsize;
  int Day;
  float MilkYield1;
  float MilkYield2;
  int count;

  cout << "Please input herd size" << endl;
  cin >> Herdsize;
  while (Herdsize < 1 || Herdsize > 900) {
    cout << "Please re-input herdsize between 1 and 900" << endl;
    cin >> Herdsize;
  }

  int CowID[Herdsize + 1];
  float DailyYield[Herdsize * 7];
  float WeeklyYieldpercow[Herdsize * 14];

  for (count = 1; count < Herdsize + 1; count++) {
    cout << "Input 3 digit cow id ";
    cin >> CowID[count];
    while (CowID[count] < 1 || CowID[count] > 999) {
      cout << "Please re-input cow a 3 digit cow id " << endl;
      cin >> CowID[count];
    }

    for (Day = 1; Day < 8; Day++) {
      cout << "Please input first milk yield of cow,day";
      cout << Day;
      cout << endl;
      cin >> MilkYield1;
      cout << "Please input second milk yield day:";
      cout << Day;
      cout << ",  if there is a second yield if not enter 0";
      cout << endl;
      cin >> MilkYield2;
    }
    DailyYield[((count - 1) * 7) + Day] = MilkYield1 + MilkYield2;
    WeeklyYieldpercow[count] = WeeklyYieldpercow[count] +
      DailyYield[((count - 1) * 7) + Day];
  }


  // TASK 2
  int count2 = 1;
  float Herdtotalweek;
  float Averagevolume;
  for (count = 1; count2 < Herdsize + 1; count++) {
    Herdtotalweek = Herdtotalweek + WeeklyYieldpercow[count];
  }
  Averagevolume = Herdtotalweek / Herdsize;
  int Herdtotalweekwhole = int(Herdtotalweek + 0.5);
  int Averagevolumewhole = int(Averagevolume + 0.5);
  cout << "Total weekly volume=";
  cout << Herdtotalweekwhole;
  cout << "Average volume =";
  cout << Averagevolumewhole;
}

2 个答案:

答案 0 :(得分:1)

而不是float Herdtotalweek;尝试使用float Herdtotalweek = 0;

另外,在你的第二个for语句中,而不是for (count=1;count2<Herdsize+1;count++)尝试for (count=1;count<Herdsize+1;count++)(你使用的是count2而不是count,这可能是一个复制/粘贴错误)

答案 1 :(得分:1)

task2之后的for循环永远不会完成。这是一个无限循环,因为您没有更新count2。