正确打印值 1 到 10

print the value properly 1 to 10

提问人:sunil kumar 提问时间:9/11/2019 最后编辑:Vlad from Moscowsunil kumar 更新时间:9/12/2019 访问量:287

问:

当我执行此问题时,输出为空白,为什么,请正确解释

#include<stdio.h>

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

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

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

C for 循环 算子 相等

评论

2赞 VLAZ 9/11/2019
这看起来不像 JavaScript。
5赞 deceze 9/11/2019
你的循环说,而 b 等于 10......
2赞 dbush 9/11/2019
通过循环的第一次迭代的值是多少,它是否满足循环条件?b
1赞 SergeyA 9/11/2019
我建议你阅读教程。它包含有关如何解决此问题的宝贵建议。
1赞 tadman 9/12/2019
🔎🐞是否在调试器中运行了代码?这将帮助您逐步浏览代码并查看它实际在做什么,这通常与你认为它正在做什么大相径庭。

答:

2赞 Bathsheba 9/11/2019 #1

由于在第一次迭代中,循环不会运行。b == 100

你是说吗?b <= 10

(为避免疑义,将 和 设置为。b = ++aba1

0赞 Maheer Ali 9/11/2019 #2

问题是你的循环将运行到等于 。开始时将是 1。所以循环根本没有开始。你需要改变a10a==!=

#include<stdio.h>

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

    for(b=++a;b != 10; b++/*2*/){
        printf("%d",b);//1
    }
    return 1;
}
0赞 Vlad from Moscow 9/11/2019 #3

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

要使用 for 循环和循环条件中的数字(包括 to 和)打印数字,可以使用相等运算符 ( 或 ) 来打印 from to 中的数字,可以按以下方式编写循环11010==!=

#include <stdio.h>

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

    for ( b = a; b++ != 10; )
    {
        printf( "%d", b );
    }
}

如果你需要在循环之后变量有值,那么你可以写a1

#include <stdio.h>

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

    for ( b = a++; b++ != 10; )
    {
        printf( "%d", b );
    }
}

否则,如果在循环之后变量和有值,你可以写ab110

#include <stdio.h>

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

    for ( b = a++; b != 10; )
    {
        printf( "%d", ++b );
    }
}

至于你的循环,那么最初设置为 1。b

b=++a;

因此,它在初始化后永远不能等于 10。

b == 10

也就是说,循环不会被执行。

评论

0赞 tadman 9/12/2019
真的不清楚为什么会出现在这里,而它并没有真正用作脚凳。aba
0赞 Vlad from Moscow 9/12/2019
@tadman我同意。但似乎他需要使用增量运算符和两个变量编写一个循环:)
0赞 DevesH 9/12/2019 #4

在这行代码中

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

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

1) 最初 a 在分配给 b 之前变为 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;
}