cin 与 getchar 中的坑
今天在一道题上发现一个坑。
输入三个字符,按以下规则求其平均值。
(1)如果是数字0~9,那么直接参与求值;
(2)如果是其他字符,则其ASCII码参与求值。
输入
输入数据有多组。第一行是数据的组数T,接下来由T行,每行有3个字符,没有其他任何多余字符。
输出
对于每组输入,根据规则输出平均值。保留2位小数。
样例输入
样例输出
#include<cstdio>
using namespace std;
int main()
{
char str[3];
int i,t;
double sum;
cin>>t;
getchar();
while(t--)
{
cin>>str[0];
cin>>str[1];
cin>>str[2];
getchar();
sum=0;
for(i=0;i<3;i++)
{
if(str[i]-'0'>=0&&str[i]-'0'<=9)
sum+=str[i]-'0';
else sum+=(int)str[i];
}
printf("%0.2lf\n",sum/3.0);
}
return 0;
}
#include<cstdio>
using namespace std;
int main()
{
char str[3];
int i,t;
double sum;
cin>>t;
getchar();
while(t--)
{
str[0]=getchar();
str[1]=getchar();
str[2]=getchar();
getchar();
sum=0;
for(i=0;i<3;i++)
{
if(str[i]-'0'>=0&&str[i]-'0'<=9)
sum+=str[i]-'0';
else sum+=(int)str[i];
}
printf("%0.2lf\n",sum/3.0);
}
return 0;
}
①cin>>:无法接收空格、Tap键且以空格、Tap键、回车符为分隔符;
②cin.get( ):可以接收空格、Tap键且以回车符为结束符;
一:可输入单个字符
格式:
char ch;
ch=cin.get( );/cin.get(ch);
二:可输入字符串
格式:
cin.get(字符数组名,元素个数)
③getline( ):可接收空格、Tap键且以回车符为结束符;
格式:
string str;//字符串变量
getline(cin,str);
④cin.getline( ):可接收空格、Tapa键且以回车符结束;
格式:cin.getline(字符数组名,元素个数)
char m[20];
cin.getline(m,20);
③和④类似,单数getline( )属于string流类,而cin.getline( )属于istream流类,是不一样的函数。
C语言中的gets( )和getchar( )
①gets(字符数组名)用于接收字符串,可包括空格、Tap键且以回车符结束;
②getchar(字符变量名)用于接收单个字符且以回车符结束,一般需要两个。前一个接收字符,后一个接收回车符。
③putchar(字符变量名或整常数)
cin 与 getchar 中的坑的更多相关文章
- 缓冲区 cin() getline() getchar()
; } 只输入了一行abc, 然后回车后就输出一行abc, 一行空 这是因为cin在缓冲区里丢下的\n 给后面的getline()当成输入结束的标志了 二.getline(cin, str) 输入结束 ...
- cin.getline()的用法和坑
cin.getline()的用法和坑 cin.getline大致原型:**istream& getline (char* s, streamsize n, char delim='\n');* ...
- Golang中的坑二
Golang中的坑二 for ...range 最近两周用Golang做项目,编写web服务,两周时间写了大概五千行代码(业务代码加单元测试用例代码).用Go的感觉很爽,编码效率高,运行效率也不错,用 ...
- Golang 中的坑 一
Golang 中的坑 短变量声明 Short variable declarations 考虑如下代码: package main import ( "errors" " ...
- Mysql系列八:Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用
一.Mycat和Sharding-jdbc的区别 1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包 2)使用mycat时不需要改代码,而使用sharding-jdbc时 ...
- Windows API中的坑
本文主页链接:Windows API中的坑 ExpandEnvironmentStrings 风险: 进程会继承其父进程的环境变量.在展开如%APPDATA%等文件夹时,有可能父进程对此环境变量进行过 ...
- vue中的坑 --- 锚点与查询字符串
在vue中,由于是单页面SPA,所以需要使用锚点来定位,在vue的官方文档中提到过也可以不使用锚点的情况,就是在vue-router中使用history模式,这样,在url中就不会出现丑陋的#了,但是 ...
- Torch-RNN运行过程中的坑 [2](Lua的string sub函数,读取中文失败,乱码?)
0.踩坑背景 仍然是torch-rnn/LanguageModel.lua文件中的一些问题,仍然是这个狗血的LM:encode_string函数: function LM:encode_string( ...
- Torch-RNN运行过程中的坑 [1](读取Lua非空table,size为0)
0.踩坑背景 执行Torch-RNN的时候,在LanguageModel.lua中的encode_string函数中,对start_text的各个character进行id映射编码,实现功能类似“北京 ...
随机推荐
- runltp<p-pan
- usb帧格式
源: usb帧格式
- Linux环境nginx的安装
安装Nginx前需要编译环境和库文件支持: 1.安装make: yum -y install openssl openssl-devel yum -y install gcc automake aut ...
- Could not complete request
Could not complete request com.alibaba.dubbo.rpc.RpcException: Forbid consumer 10.254.1.26 access se ...
- java读取文件和写入文件的方式
https://www.cnblogs.com/fnlingnzb-learner/p/6011324.html
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...
- 教你用Visual Studio Code做PHP开发 - 微软官方工具,IDE中的黑马
转载于:http://bbs.wfun.com/thread-902655-1-1.html,仅供自己备忘 本文为我在智机网的原创 ] 关于Visual Studio Code,可能有的开发者很陌生 ...
- JavaScript中this的用法 及 如何改变this的指向
要懂得JavaScript中this的用法,首先需要知道,JavaScript中的作用域相关知识. var fun = function(){ var flag = 1; console.log(fl ...
- python---02.while循环 格式化输出 运算符 编码
一.while循环语句 1.while 条件:(如果条件是真, 则直接执⾏循环体. 然后再次判断条件. 直到条件是假. 停⽌循环) 循环体(break continue) 2. break: 立刻跳 ...
- SQLServer2014 安装错误:等待数据库引擎恢复句柄失败
查了很多资料最后靠百度百科里的一票报道彻底解决困难.在次发表一下以便给后人排忧解难 已下为百度连接 https://jingyan.baidu.com/article/7908e85cb24c19af ...