【问题标题】:Switch case statement with for loop not working as expected带有for循环的switch case语句没有按预期工作
【发布时间】:2021-05-23 03:05:24
【问题描述】:

这里的障碍是找到一个小数相同的数字并用它们做一些数学运算。

我想在这里实现的只是让 switch/case 语句起作用。

我刚开始编程 (ಥ_ಥ)

我在这里做错了什么?

我找不到逻辑问题...

#include <bits/stdc++.h>

using namespace std;


int main() {

    int a, add[5]={0};
    for(int i=1; i<=10000; i++){
  switch(i)
        case 1:
            add[0]+=i;
            break;
        case 10:
            add[1]+=i;
            break;
        case 100:
            add[2]+=i;
            break;
        case 1000:
            add[3]+=i;
            break;
        case 10000:
            add[4]+=i;
            break;
    }
    cout<<add[0]<<"\n"<<add[1]<<"\n"<<add[2]<<"\n"<<add[3]<<"\n"<<add[4]<<"\n";
    return 0;
}

【问题讨论】:

  • 你想用这个循环做什么?它从 1 迭代到 10000 并且……什么都不做?
  • 这段代码“不起作用”是什么意思?你期望它做什么?
  • 您是否尝试添加一个 cout 来检查一切是否正常?你真的需要那个 switch 语句吗?
  • 代码没有做任何事情,但除此之外没有人能真正说出它有什么问题,除非你解释你想让它做什么。
  • 我没有写其他东西的原因是switch语句本身不起作用......代码只是崩溃并停止工作......但是在这里你有它>>只是写了一些代码帮助大家更容易理解

标签: c++ for-loop switch-statement


【解决方案1】:

If 语句按预期工作。 谢谢你帮助我。

#include <bits/stdc++.h>
int arr[10001]={0};
int main() {
    for(int i=1; i<10000; i++){
        if(i<10)
            arr[i+i]=1;
        else if(i<100)
            arr[i+i/10+i%10]=1;
        else if(i<1000)
            arr[i+i/100+(i%100)/10+i%10]=1;
        else if(i<10000)
            arr[i+i/1000+(i%1000)/100+(i%100)/10+i%10]=1;
        if(arr[i]==0)
            std::cout<<i<<"\n";
    }
    return 0;
}

【讨论】:

    【解决方案2】:

    如前所述,您缺少两个大括号 {}

    快速浏览一下您的代码:创建一个从 1 到 10,000 的循环,添加数组以 {1, 10, 100, 1000, 10000} 结束。不知道这是不是设计的。

    int main() {
    
      int a, add[5] = {0};
      for (int i = 1; i <= 10000; i++) {
        switch (i) // Missing a {
          case 1:
            add[0] += i;
            break;
          case 10:
            add[1] += i;
            break;
          case 100:
            add[2] += i;
            break;
          case 1000:
            add[3] += i;
            break;
          case 10000:
            add[4] += i;
            break;
        // Missing a }
      }
      cout << add[0] << "\n" << add[1] << "\n" << add[2] << "\n" << add[3] << "\n" << add[4] << "\n";
      return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多