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 步骤: 打开[自定义列] ...
随机推荐
- SQL Server无备份误删数据的恢复
在正式生产数据库中,因为客户现场管理不规范产生了一条错误数据,由于自身睡眠不佳加上客户方言表达,将编号记错,在没有备份的情况下,直接连远程数据库执行了delete操作. 由于备份设置的是每日0点,当天 ...
- 监控自己的电脑浏览器访问记录并生成csv格式
#!usr/bin/env python #-*- coding:utf-8 _*- """ @author:lenovo @file: 获取浏览器历史记录.py @ti ...
- Python3 基本语法 学习笔记
如何定义python源文件的文件编码 如果想要定义文件代码的编码,一个特殊的注释应该放到源文件的第一或第二行,例如: # coding=<encoding name> 或 使用一种大多数编 ...
- 移动Web开发-WebApp(flex布局+移动端导航案例)
实际开发中的像素:css像素设备像素比dpr=设备像素/css像素标清屏dpr=1 高清屏dpr=2缩放改变的是css像素大小PPI(每英寸的物理像素点)=根号(屏幕横向分辨率²+屏幕纵向分辨率²)/ ...
- 0011 基于DRF框架开发(04 普通序列化器)
普通序列化器和模型无关,只是对针对提交字段的定义. 本文定义三个序列化器: 教师序列化器,学生序列化器,教师学生序列化器.这三个序列化器都使用普通序列化器. 1 教师序列化器 在Application ...
- ssrf漏洞利用(内网探测、打redis)
摘要:存在ssrf漏洞的站点主要利用四个协议,分别是http.file.gopher.dict协议. file协议拿来进行本地文件的读取,http协议拿来进行内网的ip扫描.端口探测,如果探测到637 ...
- ASP.NET一般处理程序之网站请求过程
- 7-8 矩阵A乘以B (15分)
7-8 矩阵A乘以B (15分) 给定两个矩阵A和B,要求你计算它们的乘积矩阵AB.需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有Ra行.Ca列,B有Rb行.Cb列, ...
- Python类的特殊成员方法
__doc__ 类的描述信息. class dog: '''这是狗的类''' def __init__(self,name): self.name = name self.__age = None p ...
- P3329 [ZJOI2011]最小割
题目描述 小白在图论课上学到了一个新的概念--最小割,下课后小白在笔记本上写下了如下这段话: 对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点 s 和 t 不在同一个部分中,则称这 ...