C语言关于for的嵌套问题
解决时间 2021-02-13 13:27
- 提问者网友:川水往事
- 2021-02-13 03:12
输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)。
#include
#include
int main()
{
for(int a=1;a<=9;a++)
for(int b=0;b<=9;b++)
{
int n=a*1100+b*11;
int m=floor(sqrt(n))+0.5);
if(m*m==n) printf("%d\n",n);
}
return 0;
}
请帮我讲解一下for循环的执行过程,
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-02-13 03:20
#include
#include
int main()
{
for(int a=1;a<=9;a++)
{
printf("%d\n", a); //这里加了一个打印语句
for(int b=0;b<=9;b++)
{
printf("%d-%d\n", a, b); //这里加了一个打印语句
int n=a*1100+b*11;
int m=floor(sqrt(n))+0.5);
if(m*m==n)
printf("%d\n",n);
}
}
return 0;
}
你可以从加的打印语句执行之后理解for循环的执行顺序。
执行过程很简单,main函数里面有两层循环,先进入第一层循环,当a=1的时候将执行内层的
for循环,b从0开始执行循环体当中的内容,执行完毕后b++,判断b<=9,到9执行完毕,然后跳
出内层循环,再执行外层循环,即a++,再判断a<=9,如果满足则执行内层循环,当外层循环完毕,
则程序结束。
全部回答
- 1楼网友:胯下狙击手
- 2021-02-13 05:04
选择(B)15.
详解:首先a=5,进入循环体
{定义m=0;
又一个循环体
{b=5且符合b<=5的条件,则
m=0+5*5=25;
然后继续此循环,
b=6,发现不符合此循环的条件,则结束此循环;
}
然后a=4,进入循环体
{定义m=0;
又进入下个循环体
{b=4且符合b<=5的条件,则
m=0+4*4=16;
然后继续此循环,
b=5,发现符合此循环的条件b<=5,则
m=16+4*5=36;
然后继续此循环,
b=6,发现不符合此循环的条件,则结束此循环;
}
然后a=3,a=2一样的方法,
当a=1,进入循环体
{定义m=0;
又进入下个循环体
{b=1,发现符合此循环的条件b<=5,则
m=0+1*1=1;
然后继续此循环,
b=2;发现符合此循环的条件b<=5,则
m=1+1*2=3;
然后继续此循环,
b=3;发现符合此循环的条件b<=5,则
m=3+1*3=6;
然后继续此循环,
b=4;发现符合此循环的条件b<=5,则
m=6+1*4=10;
然后继续此循环,
b=5;发现符合此循环的条件b<=5,则
m=10+1*5=15;
然后继续此循环,
b=6,发现不符合此循环的条件,则结束此循环;
}
所以这时输出m=15;
选择B。
希望对你能有所帮助。
- 2楼网友:归鹤鸣
- 2021-02-13 03:30
#include<stdio.h>
main()
{
int year,leap ;
scanf("%d",&year);
if(year%4=0)
{
if(year%100=0)
{
if(year%400=0)
leap=1 ;
else
leap=0 ;
}
else leap=1 ;
}
else leap=0 ;
if(leap)
printf("%d is",year);
else
printf("%d is not",year);
printf("a leap year.\n");
}
===============================================
还有“缺省“{}”时”,是啥意思?
也就是省略 {} 不写如果if或else只包含一条语句,那么{}可以省略,
如果if或else包括很多语句,就要把{}填上
我要举报
大家都在看
推荐资讯