C语言刷题day02(循环打印)

本文介绍了如何使用C语言打印一个由用户输入字符填充的倾斜菱形,重点在于循环和对称性的处理。通过设置行数变量n、i和j的循环,结合条件判断来实现。同时,文章还讲解了在C语言中利用EOF实现循环输入的原理,即当输入结束(如按Ctrl+z)时,scanf函数会返回-1,从而终止循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1.

牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。

输入描述:

输入一个char类型字符

输出描述:

输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形

示例1

输入:

#

复制输出:

  #
 ###
#####
 ###
  #

分析:

1.空格和字符的循环输出解决问题

2.对称问题解决一半,用两次嵌套for循环,下半部分只需要循环条件倒过来即可

3.除了引入i和j以外,需要引入行数变量n,i=循环打印几行,j改行循环打印几个空格和字符,n控制条件判断(最好设置,便于用户理解)

4.条件设置,每行空格和只需要用j与i或者与i&n的表达式表达出即可

#include <stdio.h>
int main()
{
   char ch;
   scanf("%c", &ch);
   int i, j;
   int n = 3;  //设包括对角线在内的上半部分有n行
   for(i = 1; i <= n; i++)  //打印第1行到对角线(第n行)
   {
       for(j = 0; j < n-i; j++)
     {
           printf(" "); //先打印每行的空格,第i行有n-i个空格
     }
       for(j = 0; j < 2*i-1; j++)
     {
           printf("%c", ch);   //再打印每行的字符,第i行有2*i-1个
     }
       printf("\n");    //打印完每行空格和字符,要换行
   }
   for(i = 1; i < n; i++)  //对角线以下部分只有n-1行,从1到n-1
   {
       for(j = 0; j < i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值