一、PTA实验作业

题目1:最佳情侣身高

1.实验代码

	int      N, i;
float height;
char sex;
printf("输入用户个数:\n");
scanf("%d", &N); if(N>10||N<=0)
{
printf("输入错误!\n");
}
else
{
for(i=1; i<=N; i++)
{
scanf("\n%c%f",&sex,&height);
switch(sex)
{
case 'F':printf("%.2f\n", height*1.09);break;
case 'M':printf("%.2f\n", height/1.09);break;
default: printf("输入错误!\n");break;
}
} }

2.设计思路

  • 1、定义2个整型变量N和i,一个浮点型变量height,一个字符型变量sex,N表示前来查询用户数、i计数、height身高、sex性别;
  • 2、输入N,初始化i=1;
  • 3、若N>10或N<=0,提示"输入错误!"并结束程序,否则继续下一步骤;
  • 4、i++;
  • 5、输入sex、height;
  • 6、若sex=‘F’,printf("%.2f\n", height*1.09),结束程序;若sex= 'M',printf("%.2f\n", height/1.09),结束程序;否则提示"输入错误!",结束程序;
  • 7、若 i<=N,返回步骤4,否则结束程序

3.本题调试过程碰到问题及解决办法

  • 问题1:结果错误

解决方法:调试程序,请教同学。开始不理解为什么会出现这样的错误,后来请教舍友,舍友提出可能是因为scanf()函数把结束语句的回车当成字符处理了。猜测中我们使用百度百科,发现确实会有这种可能,然后按照百度的方法,在程序中加入fflush(stdin)函数后,发现第一个输出结果仍有问题,但后面的输出全部正确了。调试发现第一次循环时sex的值仍是‘\n’,大家都不知道为什么会这样了。后来我凭着程序员的直觉(因为之前老师说过直接在scanf语句中写上符号的话,在运行输入时也要输进符号,如果是后面的scanf语句把前一个结束语句的回车当成字符处理了的话,那我先在scanf里面给它一个‘\n’,结果会不会不一样)

最新文章

  1. A*寻路算法探究
  2. Linux 容器技术史话:从 chroot 到未来
  3. [Android分享] 【转帖】Android ListView的A-Z字母排序和过滤搜索功能
  4. xml资源getStringArray(R.array.xxx)方法
  5. poj3114 强连通+最短路
  6. es6新特性
  7. 4 weekend110的hdfs下载数据源码跟踪铺垫 + hdfs下载数据源码分析-getFileSystem(值得反复推敲和打断点源码)
  8. Qt修改文件内容
  9. java中的native关键字
  10. Android内存泄露---检测工具篇
  11. MVC中控制器当中需要绑定SelectList,也就是所谓的DropDownList
  12. java 关键字final
  13. BotVS开发基础—2.7 指标MA
  14. wiringPi库的pwm配置及使用说明
  15. 『离散化 discrete』
  16. 11175-From D to E and Back(思维)
  17. 开源流媒体服务器SRS学习笔记(4) - Cluster集群方案
  18. 机器学习&amp;深度学习视频资料汇总
  19. Unity3D-射线效果
  20. Struts2中的类型转换失败

热门文章

  1. Linux文件删除的原理
  2. Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
  3. D. AB-string ( 思维 )
  4. Robot Framework(十八) 支持工具
  5. Maven的安装和配置(Windows 10)
  6. 在SQLAlchemy ORM中动态变更表名
  7. 转载---WCF、WPF、Silverlight和区别
  8. mongodb 数据更新命令、操作符
  9. 一、mysql下载与安装
  10. 利用socket实现聊天-Android端核心代码