目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:
多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
输出描述:
针对每行输入,输出占一行,用“*”组成的对应长度的线段。
解题思路 :
/*思路: 使用for循环来解决这道题
用户输入几,就打印几个*/
读取输入:首先,需要从标准输入读取用户输入的整数,这个整数表示线段的长度。
循环打印:使用一个循环结构(通常是for
循环),根据用户输入的整数,循环打印出相应数量的"*"。
输出结果:在每次循环中,打印出一个"*",直到达到用户指定的长度。
处理多组输入:题目中提到“多组输入”,这意味着程序应该能够处理多个用户输入,直到输入结束。
代码 1 :
/*思路: 使用for循环来解决这道题
用户输入几,就打印几个*/
#include <stdio.h>
int main ()
{
int i = 0;
while(scanf("%d",&i)!=EOF)//多组输入
{
for(int j=1;j<=i;j++)//循环判断
{
printf("*");
}
printf("\n");//用户输入两个数字需要在最后加个循环
}
return 0;
}
代码 2 :
#include<stdio.h>
int main()
{
int a;
while(scanf("%d",&a) != EOF)
{
while(a > 0)
{
printf("*");
a--;
}
printf("\n");
}
return 0;
}
代码 3 :
#include <stdio.h>
int main() {
int a;
while (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld")
while(a--)
{
printf("*");
}
printf("\n");
}
return 0;
}
知识点:
-
输入输出函数:
scanf
:用于从标准输入(通常是键盘)读取数据。它的使用格式为scanf("格式字符串", &变量);
,其中格式字符串定义了期望输入的数据类型和格式。printf
:用于向标准输出(通常是屏幕)打印数据。它的使用格式为printf("格式字符串", 变量);
,格式字符串可以包含转义序列和格式说明符来控制输出格式。
-
循环结构:
for
循环:用于重复执行一段代码直到满足特定条件。其基本语法为for (初始化表达式; 条件表达式; 迭代表达式) { 代码块; }
。- 在本题中,
for
循环用于打印出指定数量的星号。
-
变量声明:
- 在C语言中,变量在使用前必须声明其类型和名称。例如,
int length;
声明了一个整型变量length
。
- 在C语言中,变量在使用前必须声明其类型和名称。例如,
-
条件判断:
- 虽然本题没有直接使用条件判断,但了解如何使用
if
语句来基于条件执行不同的代码路径是很重要的。 if
语句的基本语法为if (条件表达式) { 代码块; }
。
- 虽然本题没有直接使用条件判断,但了解如何使用
-
多组输入处理:
- 本题要求处理多组输入,直到输入结束。这通常通过在循环中使用
scanf
来实现,循环会持续进行,直到输入被中断(例如,通过输入EOF)。
- 本题要求处理多组输入,直到输入结束。这通常通过在循环中使用
-
循环控制:
- 在
for
循环中,初始化表达式用于设置循环计数器的初始值,条件表达式定义了循环继续执行的条件,迭代表达式在每次循环结束时更新计数器。
- 在
-
程序逻辑设计:
- 在编写程序之前,需要设计一个逻辑流程来解决问题。对于本题,逻辑流程是读取输入,然后使用循环打印出相应数量的星号。
-
格式化输出:
printf
函数可以用于格式化输出,通过在格式字符串中指定格式说明符(如%d
用于整数,%f
用于浮点数)来控制输出的数据类型和格式。
-
程序结构:
main
函数是C程序的入口点。所有的C程序都从main
函数开始执行。- 程序的其他部分(如函数定义、变量声明等)通常包含在
main
函数中或作为单独的函数定义在程序的其他部分。