天府新区规划建设国土局网站,手机版网站系统,四川成都最大的网络科技公司,以色列网站后缀目前主要分为三个专栏#xff0c;后续还会添加#xff1a; 专栏如下#xff1a; C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读#xff01;
初来乍到#xff0c;如有错误请指出#xff0c;感谢#xff01; 描述
KiKi学习了循环后续还会添加 专栏如下 C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读
初来乍到如有错误请指出感谢 描述
KiKi学习了循环BoBo老师给他出了一系列打印图案的练习该任务是打印用“*”组成的翻转金字塔图案。
输入描述
多组输入一个整数2~20表示翻转金字塔边的长度即“*”的数量也表示输出行数。
输出描述
针对每行输入输出用“*”组成的金字塔每个“*”后面有一个空格。
示例1 思路
首先要分两个步骤 控制每一行的打印
而每一行又由 空格* 组成
先打印每一行的的空格
再打印每一行的 星号 把两个分开来
//(j 0; ji;j)
//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次
//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次
//......
(j 0; jn-i; j)
//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格
//第三行 i是2 5减2 等于三 打印三个*加空格
//...... 读取输入首先需要读取用户输入的整数这个整数决定了翻转金字塔最底层的星号数量。 循环控制使用一个for循环来控制打印的行数循环的次数等于输入的整数。 计算空格在每一行中需要首先打印一定数量的空格以使星号右对齐并形成金字塔形状。空格的数量可以通过n - i - 1来计算其中n是输入的整数i是当前的行数从0开始。 打印星号在打印完空格之后使用另一个for循环来打印星号。内层循环的次数等于2*i 1这是因为除了第一行和最后一行外每行的星号数量是奇数并且随着行数的增加而增加。 换行在每行的星号打印完毕后使用printf(\n);打印一个换行符以便开始新的一行。 循环结束当for循环完成所有迭代后整个翻转金字塔图案打印完毕。 代码 1
/*思路 首先要分两个步骤 控制每一行的打印
而每一行又由 空格* 组成
先打印每一行的的空格
再打印每一行的 星号 把两个分开来
//(j 0; ji;j)
//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次
//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次
//......(j 0; jn-i; j)
//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格
//第三行 i是2 5减2 等于三 打印三个*加空格
//...*/# include stdio.h
int main (){int n 0;while(scanf(%d,n)!EOF){int i 0;//每一行的打印 每打印一行退出依次循环 //先打印一行 打印空格for(i 0; in; i){int j 0;//先打印每一行的空格 因为每一行都是由空格和星号组成的//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次//......for(j 0; ji;j){printf( );}//再打印每一行的星星 每一行都是有空格和星星组成//再打印*空格//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格//第三行 i是2 5减2 等于三 打印三个*加空格//...for(j 0; jn-i; j){printf(* );}printf(\n);}}return 0;
}
------------------------------------------------------
#include stdio.h // 包含标准输入输出库int main() // 主函数的开始
{int n 0; // 定义一个整型变量n用于存储用户输入的翻转金字塔边长while(scanf(%d,n)!EOF) // 使用while循环来处理多组输入直到文件结束符EOF{int i 0; // 定义一个整型变量i用于控制外层循环表示当前行数// 外层循环控制每一行的打印for(i 0; i n; i){int j 0; // 定义一个整型变量j用于控制内层循环// 内层循环1先打印每一行前面的空格// 空格的数量随着行数的增加而减少for(j 0; j i; j) // 循环i次打印i个空格{printf( ); // 打印一个空格}// 内层循环2再打印每一行的星号// 星号的数量等于n-i随着行数的增加而减少for(j 0; j n-i; j) // 循环n-i次打印n-i个星号和空格{printf(* ); // 打印一个星号和一个空格}printf(\n); // 每行结束后打印换行符以便开始新一行的打印}}return 0; // 主函数结束返回0表示程序正常结束
}
程序使用while循环来处理多组输入直到遇到EOF。在每次循环中首先读取用户输入的整数n这个整数表示翻转金字塔最底层的星号数量。
外层for循环控制行数从0到n-1。
在每次迭代中首先有一个内层循环用于打印空格空格的数量等于当前行数i。接着另一个内层循环用于打印星号和空格星号的数量等于n-i。
每完成一行的打印后使用printf(\n)来换行准备打印下一行。当所有行都打印完毕后while循环结束程序返回0表示正常退出。
代码 2
#include stdio.hint main() {int n;while (scanf(%d, n) ! EOF) { // 读取输入直到EOFif (n 2 || n 20) break; // 输入验证确保n在2到20之间// 外层循环控制行数for (int i 0; i n; i) {// 打印空格for (int j 0; j n - i - 1; j) {printf( );}// 打印星号for (int k 0; k 2 * i 1; k) {printf(*);}// 换行printf(\n);}}return 0; // 程序结束
} 这段代码首先包含了stdio.h头文件定义了主函数main并在其中定义了一个整数变量n来存储用户输入的翻转金字塔最底层的星号数量。
然后程序使用while循环来读取输入直到EOF并验证输入是否在2到20之间。
外层for循环控制行数内层两个for循环分别用来打印空格和星号。
每完成一行的打印后程序使用printf(\n)来换行。当输入结束时程序返回0表示正常退出。
代码 3
#include stdio.h // 包含标准输入输出库int main() // 主函数的开始
{int a 0; // 定义一个整型变量a用于存储用户输入的翻转金字塔边长// 使用while循环来处理多组输入直到文件结束符EOFwhile ((scanf(%d, a)) ! EOF){int j 0; // 定义一个整型变量j用于控制每行开头的空格数初始化为0int k a; // 定义一个整型变量k用于控制每行的星号数初始化为a// for循环控制打印的行数共打印a行for (int i 0; i a; i){// 内层第一个for循环打印每行开头的空格// 空格数从0开始每行递增1for (int b 0; b j; b){printf( ); // 打印一个空格}// 内层第二个for循环打印每行的星号// 星号数从a开始每行递减1for (int c 0; c k; c){printf(* ); // 打印一个星号和一个空格}printf(\n); // 每行结束后打印换行符以便开始新一行的打印j; // 每行之后空格数增加1k--; // 每行之后星号数减少1}}return 0; // 主函数结束返回0表示程序正常结束
}
程序使用while循环来处理多组输入直到遇到EOF。
在每次循环中首先读取用户输入的整数a这个整数表示翻转金字塔最底层的星号数量。
外层for循环控制打印的行数从0到a-1。
在每次迭代中首先有一个内层循环用于打印空格空格的数量由变量j控制每行递增。接着另一个内层循环用于打印星号和空格星号的数量由变量k控制每行递减。
每完成一行的打印后使用printf(\n)来换行准备打印下一行。
每行打印后j和k分别更新以准备下一行的打印。当所有行都打印完毕后while循环结束程序返回0表示正常退出。