C语言-防止输入字母
今天群里一位小伙伴问了一个关于scanf函数的问题:
scanf("%d", &n);
这个代码怎么防止输入字母?
因为他下面是判断n是否为质数,所以这里肯定有个判断,不然输入字母后就乱跑了。
#include<stdio.h> int main(void)
{
long int n;
int line=0,i,j;
printf("输入一个数据\n");
while(scanf("%ld", &n) == 1)
{
if(n<=1) {
printf("没有满足条件的数据!\n");
return (1);
}
for(i=2;i<=n;i++)
{
for(j=2;j<i;j++)
if(i/j*j==i)
break;
if(j==i&&i%10!=9)
{
printf("%d",i);
line++;
if(line==10)
{
printf("\n \n");
line=0;
}
printf("\n");
}
}
} return 0;
}
我给他提供的办法是:
while(scanf("%ld", &n) == 1)
这段代码,通过判断scanf的返回值为输入值的个数,这样就可以了,这在竞赛题里面经常遇到,但一般人平时没有遇到就不会关注了。
另外还可以添加:fflush(stdin);清除缓冲区,一般当多次连续使用scanf函数时,都要清除缓存区,平时的\n也是如此。
C语言-防止输入字母的更多相关文章
- Notepad++ JSON关键字自动提示
Notepad++关键字自动提示 2017-08-31 目录 1 插件安装2 往JSON中加关键字3 智能提示 最近接口测试自动化框架的的case是json格式,用例的json的格式是固定的,定义专门 ...
- C语言遇到的错误和解决方案~~~持续更新,记录成长的过程
1.error C2296: '&' : illegal, left operand has type 'char [3]' scanf("%d" &x); 少了一 ...
- 在C语言中使用scanf语句时遇到的问题总结
在使用visual studio2013编写c语言代码时,遇到了这样的几个小问题,进行如下的总结. 1, 关于使用scanf语句报错的解决方案1 #include <stdio.h> in ...
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- C语言函数2
一.PTA实验作业 6-3 使用函数判断完全平方数: 1. 本题PTA提交列表: 2. 设计思路: 3.本题调试过程碰到问题及PTA提交列表情况说明: 1.一开始考虑让输入值N去整除一个循环变量i,i ...
- 第二次C语言实验
Part1: printf(),scanf()函数的用法 /* C语言程序设计教程学习指导>p119 实验内容(2) 这是一个格式化输入输出函数及格式符使用练习 找出两处错误,修改并运行程序 为 ...
- C语言的10大基础算法
C语言的10大基础算法 算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.本文包括了经典的Fibonacci数列.简易 ...
- C语言设计实验报告(二)
C程序设计实验报告姓 名:赖瑾 实验地点:家 实验时间:2020年3月9日 实验项目:2.3.3 字符与ASCLL码 2.3.4 运算符与表达式的运用 2.3.5 顺序结构应用程序 3.3.1 数学函 ...
- 在【自定义列】中使用M函数(Power Query 之 M 语言)
数据源: "品名"一列 目标: 提取品名中的首字符,生成新列:"品名简称" 解决方案: 在[自定义列]中使用M函数Text.Start 步骤: 打开[自定义列] ...
随机推荐
- 基于element-ui 模仿微信聊天页面以及滚动条隐藏在chrome和其他浏览器的处理
1.效果图 2.代码 <template> <div style=" overflow: hidden;"> <el-row> <el-c ...
- 如何将下载的Jar包导入本地Maven仓库-sunziren
原创文章,转载请注明出处博客园! 昨天在打开一个Spring Boot项目的时候,发现pom.xml的文件图标上有个小红点,遂打开查看到底报的什么错. 原来是ojdbc14-10.2.0.4.0.ja ...
- 腾讯qlv视频转为MP4格式工具
本文解决上一篇<优酷爱奇艺视频转换为MP4格式工具>留下的腾讯视频qlv转MP4格式问题,教程都是一步步亲手操作的,每一步都有配图.希望各位老板多转发分享,谢谢! 解压软件.(建议关闭所有 ...
- 剑指offer-面试题38-字符串的排列-全排列
/* 题目: 输入字符串,打印字符串的所有排列. 输入acc,输出[acc, cac, cca]. */ /* 思路: 将字符串看作两部分,第一个字符串和后面的部分. 将第一个字符串与后面字符串依次交 ...
- Android开发第一天---AndroidStudio的安装和第一个安卓开发
今天已经是开始学习Android的第二天,我居然才把AndroidStudio开发环境安装并配置好,我只能说“我太难了”,下了好几个版本,终于找到了一个合适的,得出一个结论外国的东西是真的不太好用啊, ...
- generalization error
泛化误差 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 准与确的关系 bias 偏差:模型越复杂,模型的偏差越小,方差越小,因此会出现overfitt ...
- spawn id exp6 not open
原因 脚本没有被执行 解决方案 手动执行该条命令参看报错的原因
- CentOS 7 部署 Redis(单机版)
一.部署环境说明 软件 版本 安装包 CentOS 7.2 CentOS 7.2 Redis 4.0.14 redis-4.0.14.tar.gz 二.开始部署 安装gcc依赖 [root@bmsof ...
- P1341 无序字母对【欧拉路径】- Hierholzer模板
P1341 无序字母对 提交 24.87k 通过 6.80k 时间限制 1.00s 内存限制 125.00MB 题目提供者yeszy 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 福建 ...
- Linux一些基本命令、inode定义、软硬链接
1.创建普通文件命令:touch 命令 2.创建目录文件命令:mkdir 命令 3.删除普通文件命令:rm 命令 4.删除目录文件命令:rmdir 命令 5.给普通文件写东西命令:vim 命令 6.查 ...