【问题标题】:print the value properly 1 to 10正确打印值 1 到 10
【发布时间】:2019-09-11 15:02:58
【问题描述】:

当我执行这个问题时,输出是空白的,为什么,请解释清楚

#include<stdio.h>

int  main(){
    int a=0,b;

    for(b=++a;b == 10; b++/*2*/){
        printf("%d",b);//1
    }
    return 1;
}

我想用这个方法打印1-10

【问题讨论】:

  • 这看起来不像 JavaScript。
  • 你的循环说 while b equals 10...
  • 循环第一次迭代时b的值是多少,是否满足循环条件?
  • 我建议你阅读tutorial。它包含有关如何解决此问题的宝贵建议。
  • ????????是否在调试器中运行了您的代码?这将帮助您逐步检查代码并查看它实际在做什么,而这通常会与您认为它在做什么大相径庭。

标签: c loops for-loop operators equality


【解决方案1】:

因为b == 10 在第一次迭代中是0,所以循环不会运行。

你是说b &lt;= 10吗?

(为免生疑问,b = ++aba 设置为 1。)

【讨论】:

    【解决方案2】:

    问题是你的循环会一直运行到a 等于10。一开始a 将是1。所以循环根本没有开始。您需要将== 更改为!=

    #include<stdio.h>
    
    int  main(){
        int a=0,b;
    
        for(b=++a;b != 10; b++/*2*/){
            printf("%d",b);//1
        }
        return 1;
    }
    

    【讨论】:

      【解决方案3】:

      在这行代码中

      for(b = ++a; b == 10; b++/*2*/)

      在第一次迭代中循环中断,因为 -

      1) 在分配给 b 之前,最初 a 变为 1。 (即 b = 1)

      2) 在第一次迭代中 -

       b = 1 as (++a equal to 1) 
      
       b doesn't satisfy (b == 10) condition so it ends the loop.
      

      这是工作代码。

      #include<stdio.h>
      
      int  main() {
          int a = 0, b;
          for(b = ++a; b <= 10; b++){
              printf("%d\n",b);
          }
          return 0;
      }
      

      【讨论】:

        【解决方案4】:

        我想用这个方法打印1-10

        要打印从 110 的数字,包括使用 for 循环和循环条件中的数字 10 与相等运算符(==!=),您可以编写循环以下方式

        #include <stdio.h>
        
        int  main( void )
        {
            int a = 0, b;
        
            for ( b = a; b++ != 10; )
            {
                printf( "%d", b );
            }
        }
        

        如果您需要在循环后变量a 的值是1,那么您可以编写

        #include <stdio.h>
        
        int  main( void )
        {
            int a = 0, b;
        
            for ( b = a++; b++ != 10; )
            {
                printf( "%d", b );
            }
        }
        

        否则如果在循环之后变量ab 的值是110,你可以写

        #include <stdio.h>
        
        int  main( void )
        {
            int a = 0, b;
        
            for ( b = a++; b != 10; )
            {
                printf( "%d", ++b );
            }
        }
        

        至于您的循环,最初 b 设置为 1。

        b=++a;
        

        所以它在初始化后永远不可能等于 10。

        b == 10
        

        即循环不会被执行。

        【讨论】:

        • 真的不清楚为什么ab 会出现在这里,而a 并没有真正用作脚凳。
        • @tadman 我同意。但似乎他需要使用增量运算符和两个变量编写一个循环。:)
        【解决方案5】:

        试试这个

        #include<stdio.h>
        
        int  main(){
            int a=1;
        
            for( ; a<=10 ; a++){
                printf("%d",a);
            }
            return 1;
        }
        

        为什么您的输出为空白是您没有执行循环。 b=++a 表示b=1,但条件是b==10 // 表示当b=10 时,执行循环,所以你的代码只是跳转打印函数,这样你就得到了空白。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-10
          • 2018-06-25
          • 2015-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多