【scanf】将一串整数,依次左移一个数,且原来的第一个数移到最后,原来多执行的一步在这里!

简介: 【scanf】将一串整数,依次左移一个数,且原来的第一个数移到最后,原来多执行的一步在这里!

0 起因


//题:将一串整数,依次左移一个数,且原来的第一个数移到最后
//我的第一遍代码
#include<stdio.h>
#define N 100
int main()
{
  int n,i,a[N],t;
  printf("请输入数字个数:\n");
  scanf("%d\n",&n);
  for(i=0;i<n;i++)
  {
  scanf("%d ",&a[i]);  
  }  
  t=a[0];
  for(i=0;i<n-1;i++)
  {
  a[i]=a[i+1];  
  }
  a[i]=t;
  printf("The result is:\n");
  for(i=0;i<n;i++)
  printf("%d ",a[i]);
  return 0;
}


运行结果:

image.png


存在的问题:

为什么要多输入一个数,最终结果才可以正常显示,


原因:

scanf函数的第一个参数指定了后面变量读取的格式,这样写的话会按照 我们在格式化输入函数中的格式。


scanf("%d ",&a[i]);注意这里是有一个空格的,但是编译时空格或者制表符都会被忽略,所以实际输入的结果1空格2空格3,这时如果缓冲区没有东西scanf就会阻塞在那里,直到用户有输入以至于有时候会遇到再输入一行才能有返回的情况。


你的程序执行到scanf()时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入。


1 修改


将空格省略之后,我们在运行程序检查。


运行结果如下:

image.png


总结:

当我们在编程中使用scanf语句时还是要小心,不然爆出的错误可能一时半会难以理解!

目录
相关文章
|
存储 网络协议 网络安全
OpenWrt挂载U盘安装并配置Adguard Home
随着网络生活的日益丰富,广告成为了上网过程中不可避免的一部分。然而,过多的广告不仅会影响上网体验,还可能包含恶意代码,对全构成威胁。为了解决这一问题,许多用户选择使用去广告软件,其中Adguard Home便是一个广受欢迎的选择。
1022 0
|
API C# Windows
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
Winform中实现无边框窗体只需要设置FormBorderStyle = FormBorderStyle.None,但是无边框下我们需要保留移动窗体、拖拽调整大小、自定义美观好看的标题栏等...
5321 0
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
|
存储 关系型数据库 MySQL
CentOS7+Rsyslog+MySQL 搭建 Rsyslog 日志服务器
CentOS7+Rsyslog+MySQL 搭建 Rsyslog 日志服务器
785 0
|
IDE 开发工具 Python
python中语法缩进错误处理
【7月更文挑战第8天】
593 2
|
9月前
|
存储 分布式计算 编译器
C++入门基础2
本内容主要讲解C++中的引用、inline函数和nullptr。引用是变量的别名,与原变量共享内存,定义时需初始化且不可更改指向对象,适用于传参和返回值以提高效率;const引用可增强代码灵活性。Inline函数通过展开提高效率,但是否展开由编译器决定,不建议分离声明与定义。Nullptr用于指针赋空,取代C语言中的NULL。最后鼓励持续学习,精进技能,提升竞争力。
|
SQL 关系型数据库 MySQL
美团面试:mysql 索引失效?怎么解决? (重点知识,建议收藏,读10遍+)
本文详细解析了MySQL索引失效的多种场景及解决方法,包括破坏最左匹配原则、索引覆盖原则、前缀匹配原则、`ORDER BY`排序不当、`OR`关键字使用不当、索引列上有计算或函数、使用`NOT IN`和`NOT EXISTS`不当、列的比对等。通过实例演示和`EXPLAIN`命令分析,帮助读者深入理解索引失效的原因,并提供相应的优化建议。文章还推荐了《尼恩Java面试宝典》等资源,助力面试者提升技术水平,顺利通过面试。
|
12月前
|
编解码 计算机视觉 UED
微信公众号素材下载之java
微信公众号素材下载之java
187 0
|
Docker 容器
GitLab Runner注册大揭秘:高效CI/CD的入门指南
GitLab Runner注册大揭秘:高效CI/CD的入门指南
643 0
GitLab Runner注册大揭秘:高效CI/CD的入门指南
|
移动开发 HTML5 容器
HTML5 容器入门解析:支付宝 Hybrid 方案原理与实战
mPaaS 容器是支付宝原生 Hybrid 方案,经历了严苛的业务考验,可以和支付宝使用同一套框架层代码,让你拥有解决系统级 WebView Crash 的能力,并具备良好的、弹性的扩展能力,结合具体业务需求定制 JSAPI。
6927 1