当前位置: 首页 > news >正文

牛客上的练习题——打印X形图案(有说明scanf返回值)

要求:

  • 打印用“ * ”组成的X形图案;
  • 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度
  • 针对每行输入,输出用“ * ”组成的X形图案。
  • 示例:
    在这里插入图片描述
    scanf知识点里面的(目录中找到对应的):scanf返回值🔗
记得自己敲一下代码,再看下面的答案,答案不唯一(不一定是最优解,仅作参考)
#include <stdio.h>
int main()
{int hang = 0;while (scanf("%d", &hang) == 1)//scanf会有返回值,返回的是成功读取到的个数,可以点击上面的链接进行这个知识点的了解//while (scanf("%d", &hang) != EOF);//上面那个注释掉的也可以,但不建议,下面有说明(有兴趣的可以了解)//EOR(-1){for (int i = 1; i <= hang; i++){for (int j = 1; j <= hang; j++){if (j == i || (j + i) == (hang + 1)){printf("*");}else {printf(" ");}}printf("\n");}}return 0;
}


❗️ scanf(“%d”, &hang) 的返回值规则

只是对%d的进行说明,后面如有碰到其他的会更新scanf返回值的知识点

输入情况返回值说明
成功读取一个整数(例如 2, -1, 01匹配成功
遇到非数字(如 a, #, 4.5 中的 .0匹配失败,没有给 hang 赋值
输入结束(按下 Ctrl+Z 或 Ctrl+D)EOF(通常是 -1输入流结束

while (scanf("%d", &hang) != EOF)
while(scanf("%d",&hang)==1)
上面两个如果遇到下面这几种情况会有什么不同和要注意的点

  • 下面如果是输入非整数类型的,会导致死循环,(浮点数那个有点特殊,其实前面的知识点有说 (scanf知识点里面的(目录中找到对应的):scanf介绍🔗)
  • 输入`‘a’

    • %d 期望数字,但遇到 'a’, scanf 无法匹配,返回 0。
    • ‘a’ 留在输入缓冲区中(没有被吃掉)。
      ➡️
      • 对 != EOF 来说:0 != EOF → 条件成立 → 进入循环,但里面的代码再次读 ‘a’ → 又失败 → 死循环。❌⚠️
      • 对 == 1 来说:0 == 1 → 条件不成立 → 循环立即退出。✅
  • 输入 4.5

    • 读取到 ‘4’ 时开始匹配,遇到'.'不是整数字符,匹配终止;返回 0,4.5 仍留在输入缓冲区
      ➡️
      • (同 ‘a’ 情况一样)
      • != EOF → 死循环 ❌⚠️
      • == 1 → 退出循环 ✅
输入scanf 返回值对 hang 的影响1、while(scanf(...) != EOF)2、while(scanf(...) == 1)程序行为
字符 a0不改变(保留上次值)✅ 返回值 0 != EOF → 继续循环(可能死循环)❌ 返回值不是 1 → 退出循环第二种安全,第一种可能死循环
浮点数 4.50不改变✅(同上)同上,第二种更安全
数字 -11hang = -1两种都进入循环(正常)
数字 01hang = 0两种都进入循环(正常)
数字 21hang = 2两种都进入循环(正常)
Ctrl + Z(EOF)EOF(-1)不改变❌(退出循环)❌(退出循环)两种都正常退出
  • 总结:
输入返回值!= EOF== 1推荐
合法整数(包括负数/0)1两种都可
非整数字符(a, #, 4.5)0⚠️ 死循环✅ 正常退出✅ 推荐
EOF (Ctrl+Z)EOF (-1)✅ 正常退出✅ 正常退出✅ 推荐
http://www.dtcms.com/a/567269.html

相关文章:

  • 天津网站建设服务好destoon 手机网站模板
  • 徐州建设银行网站论坛源码推荐
  • MIUI官方网站开发版app创意设计方案
  • 佛山设计网站设计价格模拟登录wordpress c
  • 云南网站设计定制wordpress文章分类页面
  • 网站建设网络宣传上海服装外贸公司有哪些
  • 建设网站的公司源码资源官网
  • 网站显示已备案wordpress 评论 邮箱
  • 网站设计公司成都做网站绑定域名 解析域名
  • 东营免费建网站如何制作优秀的网页
  • 南阳卧龙区高端网站建设口碑怎样给响应式网站提速
  • 靖江有哪些做网站的电商怎么做?如何从零开始学做电商赚钱
  • 做看电视电影的网站赚钱网站推广外包公司哪家好
  • 简易 建站帮别人做ppt挣钱的网站
  • 网站建设图片尺寸要求wordpress 评论界面
  • 网站建设将新建用户授权为管理员桂阳网站建设
  • 公司禁用网站怎么做房产官网查询系统
  • 建设网站的公司要什么资质吗外包加工网可信吗
  • 钓鱼网站实施过程led网站免费模板
  • 机床回收网站建设毕节网站建设公司
  • 网站无障碍的建设方面空缺布展设计公司排名
  • 北京国互网网站建设电话服务平台登录
  • 有什么做服装的网站吗罗湖网站建设58
  • 网站建设需要什么方案最近的新闻摘抄
  • 手机访问网站页面丢失百度服务
  • 网站企业业务员怎么做免费获客软件
  • 仙居做网站在哪里做linuxvps建站教程
  • 做的好的手机网站工地模板多少钱一张
  • C++入门(一)(算法竞赛)
  • 杭州 电子商务网站建设 网络服务开发一个网站多少钱