【问题标题】:How to do the following with C?如何使用 C 执行以下操作?
【发布时间】:2010-09-20 22:26:46
【问题描述】:

基本上,我想为每次满足条件时创建一个 int x,例如...

while(CONDITION){
    if(int x = 100){
       //create a new int
       //refrence newly created variable
      }
   }

然后我想再次运行循环,但测试新创建的变量而不是 x。希望这已经足够清楚了!

【问题讨论】:

  • 你的条件表达式不是你想的那样。
  • 寻求帮助以解决问题,而不是步骤。
  • 你真的应该编辑这个问题,让你的问题更清楚。

标签: c loops


【解决方案1】:

C 语言 中没有“创建 int”的概念。如果需要,您可以为现有的 int 分配一个新值:

int x, newx;
while(CONDITION){
   if(x == 100){
      newx = x;
   }
}

【讨论】:

    【解决方案2】:

    C99sn-p下面

    for (int i = 0; i < 4; i++) {
        int x;
        x = i * 2;
    }
    

    x 每次循环都是一个全新的x
    在程序运行该 sn-p 期间,将有 4 个不同的xs。

    【讨论】:

      【解决方案3】:

      您的问题很难理解,但听起来您几乎想要一个for 循环。例如

      for (int x = 100; CONDITION; /* do something to x here */) {
        /* use x */
      }
      

      这将从 100 开始 x,并在 CONDITION 为真时继续循环。根据您替换 /* do something to x here */ 的内容,循环中 x 的值每次都会改变。举个具体的例子:

      for (int x = 100; x < 200; x = x + 1) {
        printf("%d", x);
      }
      

      将打印 100 到 199(含)之间的所有数字。注意x = x + 1也可以写成++x或者x++;为了清楚起见,我写了它,因为你似乎是 C 的新手。

      以上假设您有一个 C99 编译器。如果您的编译器仅支持 C89,则必须在函数开头声明 x 并将 int x = 100 替换为简单的 x = 100

      【讨论】:

        【解决方案4】:

        您的问题根本不清楚,但我认为递归可能会对您有所帮助。

        void do_it(void) {
            if (CONDITION) {
                int X = something_having_to_do_with_condtion(CONDITION); // the code you had
                                                             // for initializing X made no sense
                do_it(void); // recursive call
        
                process_x(X);
            }
        }
        

        你可以用其他动态分配做类似的事情,但开销可能比递归更大。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-06-30
          • 1970-01-01
          • 2013-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多