重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天学了多维数组,上机实践,用嵌套循环打印,遇到一个问题。
本溪网站建设公司创新互联,本溪网站设计制作,有大型网站制作公司丰富经验。已为本溪近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的本溪做网站的公司定做!问题:只打印了第一组,没有打印第二组。
要打印的数组:
float arr[2][3] =
{
{1.0,1.2,1.3},//下标(0.0)、(0.1)、(0.2)
{2.0,2.1,2.3} //下标 (1.0)、(1.1)、(1.2)
};
有误的代码:
#includeint main(void)
{
//二维数组
float arr[2][3] =
{
{1.0,1.2,1.3},//下标(0.0)、(0.1)、(0.2)
{2.0,2.1,2.3} //下标 (1.0)、(1.1)、(1.2)
};
//初始化变量
int i = 0;
int l = 0;
//内嵌循环,进行打印
for (i; i< 2; i++)
for (l; l< 3; l++)
printf("%.1f\n",arr[i][l]);
return 0;
}
运行结果:
内循环没有按原本的假想进行第二次循环。
思考:内循环为什么不随着外循环不进行第二次
//初始化变量
int i = 0;
int l = 0;
//内嵌循环,进行打印
for (i; i< 2; i++)
for (l; l< 3; l++)
printf("%.1f\n",arr[i][l]);
经过分析得:
因为内循环使用的变量不是本身的,而是外部的。
具体: (1)随着外循环第一次的结束,内循环也结束,但内循环中的变量l的值也变成了3。(2)当外循环进行第二次的时候,内循环的初始值调用外部变量l,但现在变量l的值是3,使得初始值不是0,而是3,不符合循环条件。请查看更改后的代码:
#includeint main(void)
{
//二维数组
float arr[2][3] =
{
{1.0,1.2,1.3},//下标(0.0)、(0.1)、(0.2)
{2.0,2.1,2.3} //下标 (1.0)、(1.1)、(1.2)
};
//初始化变量
int i = 0;
int l = 0;
//内嵌循环,进行打印
for (i; i< 2; i++)
for (l=0; l< 3; l++)
printf("%.1f\n",arr[i][l]);
return 0;
}
运行结果:
解决思路:(1)因为我们所写代码的原因,使得内循环的初始值用的是外部的。
(2)既然不能使用外部的,那么我们就使用的内部的,所以进行了for (l=0; l< 3; l++)。l=0,对初始值进行定义,使得每次循环他的初始值都是0,0<3,满足条件,进行循环
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧