成都创新互联网站制作重庆分公司

C语言嵌套循环打印多维数组遇到一个问题,特此记录-创新互联

背景:

今天学了多维数组,上机实践,用嵌套循环打印,遇到一个问题。

本溪网站建设公司创新互联,本溪网站设计制作,有大型网站制作公司丰富经验。已为本溪近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元起,快前往官网查看详情吧


当前名称:C语言嵌套循环打印多维数组遇到一个问题,特此记录-创新互联
文章转载:http://cxhlcq.com/article/dsegpc.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部