1.关于承接(
做了30道关于嵌套循环的题,发现几乎没咋用到while(
2.关于行列
一开始时做了大概15道有关打印图形的题,一开始的思路就是根据网上学的,最外层的for决定打印几遍操作,里面的for代表操作。但实际上我觉得尤其是关于打印图形而言,更好的理解方式应该是以列和行的思想去做这些题
以这道题为例,我的思路是首先关于ij构造一个三角形轮廓,然后再分别对列和行进行调整,根据i-行-外层for,j-列-内层for进行几次微调,很轻松的就把题做出来了。
int main() { int n; scanf ("%d",&n); for (int i =1 ;i<=n;i++) { for (int j=1;j<=n;j++) { if (i==n) { printf("* "); } else if(j==1||j==i) { printf("* "); } else { printf(" "); } } printf("\n"); } }
以这道题为例,我的思路是首先关于ij构造一个三角形轮廓,然后再分别对列和行进行调整,根据i-行-外层for,j-列-内层for进行几次微调,很轻松的就把题做出来了。
3.关于矩阵的启蒙
这套题真是循循渐进,一开始的题让我开始对行,列有了感受,由于我同时也提前预习了线性代数,其实矩阵的思想也是行,列,而最后一道题是关于三元一次方程的求解
#include <stdio.h> int main() { int count = 0; // 遍历 X 的所有可能取值 for (int X = -30; X <= 30; X++) { // 遍历 Y 的所有可能取值 for (int Y = -30; Y <= 30; Y++) { // 遍历 Z 的所有可能取值 for (int Z = -30; Z <= 30; Z++) { // 检查当前的 (X, Y, Z) 是否满足方程 2X + 3Y + 5Z = 100 if (2 * X + 3 * Y + 5 * Z == 100) { count++; } } } } // 输出满足方程的解的组数 printf("%d\n", count); return 0; }思路一下就闭环了