【问题标题】:how to add a variable to its current value, with consequent user input?如何将变量添加到其当前值,以及随之而来的用户输入?
【发布时间】:2016-10-30 18:25:05
【问题描述】:

我正在使用switch 语句来存储用户输入的值。如果用户选择某种情况,他们会要求输入一个数字,并且该值存储在一个变量中。如果用户选择相同的情况,你如何将该值添加到当前值。 我正在尝试将第一个值存储在activity_count 中,然后将值保存到activity_counts。然后添加activity_counts,但值会不断变化并随着循环不断更新。我知道我的逻辑是错误的,有人可以让我更好地了解我需要做什么吗?

这是我的代码

for(daily_count = 0; daily_count < patient_count; daily_count++){
   int options;
   int activity_count;
   int activity_counts;

   cout << "1. Wash_Hands\n";
   cout << "9. Exit\n";

   cout << "\n";
   cout << "Choose a number with a description, which best decribes patient's obsessive activities: ";
   cin >> options;
   cout << "\n";


   switch(options){
       case 1:
           cout << "How much times did " << patient_name << " wash his hair:";
           cin >> activity_count;
           if(activity_count != 0)
                activity_counts = activity_count;
                activity_counts += activity_counts;
                cout << activity_counts << "\n\n";
                break;
       default:
            exit(0);
    }
}

【问题讨论】:

  • 如果在if 后面加上break 后面的括号会怎样?
  • 您的缩进与实际范围不符,请使用{} 创建块。

标签: c++ algorithm logic


【解决方案1】:

你的代码还有更多问题:

       if (activity_count != 0)
            activity_counts = activity_count;
            activity_counts += activity_counts;
            cout << activity_counts << "\n\n";
            break;

只有 if 之后的 first 语句与条件接触,其他语句总是执行(可能缺少大括号 {}

       if (activity_count != 0)

似乎没用 - 加零有什么问题?

            activity_counts = activity_count;

这有效地覆盖 activity_counts - 你是这个意思吗?

            activity_counts += activity_counts;

加倍 activity_counts 通过向它添加相同的值 - 是你的意思吗?

所以,我的朋友,您的代码可能至少需要这两项更改

更改 1初始化 activity_counts0将声明移到 for 循环前面 - 使用

int activity_counts = 0;

for (daily_count = 0; daily_count < patient_count; daily_count++){
    int options;
    int activity_count;

代替这部分代码带有未初始化声明(产生一个 随机值 for 循环中的声明变量)

for (daily_count = 0; daily_count < patient_count; daily_count++){
    int options;
    int activity_count;
    int activity_counts;

更改 2instedad of

       if (activity_count != 0)
            activity_counts = activity_count;
            activity_counts += activity_counts;

简单地使用

            activity_counts += activity_count;

(注意左侧有复数,右侧有单数。)

【讨论】:

  • 非常感谢.. 但它仍然不起作用.. 我在每次输入时都得到相同的数字.. 在我的原始代码中,我在函数中有案例.. n我在这种情况下调用的函数。这会影响结果吗?
  • 哦,是我的错。初始化声明必须在for 循环之前 - 我刚刚在我的回答中更正了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
  • 2011-02-17
相关资源
最近更新 更多