提问人:sunil kumar 提问时间:9/11/2019 最后编辑:Vlad from Moscowsunil kumar 更新时间:9/12/2019 访问量:287
正确打印值 1 到 10
print the value properly 1 to 10
问:
当我执行此问题时,输出为空白,为什么,请正确解释
#include<stdio.h>
int main(){
int a=0,b;
for(b=++a;b == 10; b++/*2*/){
printf("%d",b);//1
}
return 1;
}
我想用这种方法打印 1-10
答:
2赞
Bathsheba
9/11/2019
#1
由于在第一次迭代中,循环不会运行。b == 10
0
你是说吗?b <= 10
(为避免疑义,将 和 设置为。b = ++a
b
a
1
0赞
Maheer Ali
9/11/2019
#2
问题是你的循环将运行到等于 。开始时将是 1。所以循环根本没有开始。你需要改变a
10
a
==
!=
#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 中的数字,可以按以下方式编写循环1
10
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 );
}
}
否则,如果在循环之后变量和有值,你可以写a
b
1
10
#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
真的不清楚为什么会出现在这里,而它并没有真正用作脚凳。a
b
a
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;
}
上一个:近似相等物体的交集
评论
,而 b
等于10
......b