ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

C语言学习第三周:数组、求和、找最大值,我踩过的坑

C语言学习第三周:数组、求和、找最大值,我踩过的坑 一、这周我学习了什么这周学习了数组并用数组写了三个小练习求和、找最大值、求平均值。二、代码求和#include stdio.h int main(){ int a[5]{10,20,30,40,50}; int i; int sum0; for(i0;i5;i){ sumsuma[i]; } printf(总和是%d\n,sum); return 0; }三、我搞懂的关键点1.数组是什么:数组就是“一排盒子”。int a[5]就是5个盒子名字是从a[0]到a[4]。下标从0开始不是从1开始。2.为什么要用数组数组可以让我们“批量处理”更方便。例如我需要算我各科成绩的总和正常来算我需要给我的各科成绩分别进行定义int yuwen90; int shuxue100; int yingyu98;定义完之后再让它们相加int sum9010098如果只算三科成绩还好但如果有九科成绩甚至更多时你就需要定义九个或者更多的变量名。但运用了数组你只需要定义一组变量名如int a[3]{90,100,98};相加就是int sum0; for(i0;i5;i0){ sumsuma[i]; }总的来说数组批量定义变量批量处理数据。当我们需要很多个同类型的变量时不用一个一个起名字直接把用类型的变量打包成一个组统一管理。3.for循环和数组怎么配合一开始我不懂为什么for里要写i。后来我想通了i就像是“一根手指”指着第几个盒子。·i0指的就是a[0]这个盒子。以此类推·i1指的就是a[1]这个盒子。·······i4指的就是a[4]这个盒子。i在变盒子就跟着换。4.求平均值为什么用%d输出出来的却是0代码#include stdio.h int main(){ int a[5]{10,20,30,40,50}; int i; int sum0; for(i0;i5;i){ sumsuma[i]; } printf(平均值为%.2f\n,sum/5.0); return 0; }我一开始写的printf(平均值是%d\n,sum/5.0);结果打出来是0后来才知道sum/5.0算出来的是小数但%d只能打印整数。小数要用%f,所以改成printf(平均值为%.2f\n,sum/5.0);4.找最大值的逻辑#include stdio.h int main(){ int a[5]{3,9,6,7,8}; int i; int maxa[0]; for(i1;i5;i){ if(a[i]max){ maxa[i]; } } printf(最大值为%d\n,max); return 0 }先假设a[0]是最大的然后从a[1]开始一个一个比也就是从int max那一行到maxa[i]那一行四、我遇到的坑1.一开始不知道for循环在数组里怎么用后来把i想象成“一个手指”指着盒子一个一个拿。2.求平均值时用%d打印结果时0后来改成%f才对。3.找最大值时i要从1开始不是从0开始。因为max已经默认为a[0]了。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进