尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

数组循环小结

数组循环小结 #include stdio.h int main() { int ar[4][4]; int i,j; int row,col; int max; int remain; printf(请输入一个4×4数组); for(i0;i4;i) { for(j0;j4;j) { scanf(%d,ar[i][j]); } } maxar[0][0]; row0; col0; for(i0;i4;i){ for(j0;j4;j) { if(maxar[i][j]) { maxar[i][j]; } } } printf(最大值是%d\n,max); for(i0;i4;i) { for(j0;j4;j) { if(maxar[i][j]) rowi1; colj1; } printf( 在第%d行第%d列\n,row,col); } return 0; }我将从这个代码来阐述我对循环结构与数组联用的一些理解。该代码是要求输入一个4×4数组并找到其中的最大数并输出其最大值以及行列首先要确定编写思路先定义数组此处我是以ar[4][4]进行定义再定义ij变量为后续利用scanf函数读取做准备以及最大值以及行列有些题需要定义一个类似flag[i]1作为标记方便再调用if语句进行判断目前我学习下来我觉得在不熟练语句关系时可以先不定义这个判断语句以防头脑风暴因为判断可以放最后一步输出前可以慢慢捋思路再看能不能省去这一步标记量。好的言归正传通过scanf函数输入以后下一步应当将变量进行初始化这里我之前是存疑的因为以为初始化可以在定义变量时完成即类似我直接int max0如果这么做相当于对max赋值最重要的时max的值没有带入进我所需的for循环中这里我当时还犯了个错我输入的max0语法上没有错但如果我输入的数字全为负数最大值反而成了我在此处初始化的0所以正确做法还是代码中的maxar[0][0],初始化为该数组的第一个元素。接下来就是遍历整个数组通过if条件判断找出最大值。接下来还有一步考量一个数组最大值有可能不止一个如果在maxar[i][j]这步之后直接输出最大值以及行列行列只会输出第一次最大值的行列因此找出最大值应当在遍历整个数组找出所有最大值。rowi1;colj1是因为数组的编号都是从0开始即我们正常理解的第一行第一列在数组看来其实是0行0列因此要加上1方便输出的数字符合正常人类逻辑。输出时printf注意是该在循环之内循环之外如果需要输出的结果经历一次循环就该输出语句就该在for循环之内如果是通过遍历的循环就能得出最终结果可以就找最大值的部分加以参考就该代码就能想到这么多如果有误欢迎指正
返回列表